Fedora 36에서 Cuda 툴킷 nvcc 11.7.1을 사용하는 방법은 무엇입니까?

Fedora 36에서 Cuda 툴킷 nvcc 11.7.1을 사용하는 방법은 무엇입니까?

2022년 9월 현재 Nvidia는 Fedora 36에서 cuda 툴킷을 공식적으로 지원하지 않습니다. 누락된 특정 부분은 Fedora 36이 기본적으로 지원하는 gcc12에 대한 지원입니다. Fedora에서 nvcc를 사용하는 한 가지 해결책은페도라 거울그리고 Fedora 35를 다운로드하세요. 하지만 알고 싶어요Fedora 36에서 nvcc를 작동시키는 방법.

cuda에는 RPM fusion 위키 페이지가 있습니다., 일부 정보는 아직 찾기가 약간 어렵습니다.

Fedora 35 쿠다 저장소필요한 모든 서류를 작성하고 포함합니다., 그러나 (2022년 9월 기준) Fedora 36 nvidia cuda repo와 동일존재하지만 불완전해 보인다, 특히 .로 시작하는 rpm 파일이 없습니다 cuda-11....

답변1

2024년 4월 업데이트:

Fedora 39는 이제 공식적으로 Cuda 12 툴킷을 지원합니다. 저는 conda를 사용하여 설치하는 것을 선호합니다. nvidia에는 ​​공식 conda 패키지가 있습니다. (내가 선호하는 것은 rpmfusion을 통해 설치된 nvidia 드라이버를 건드리고 싶지 않기 때문입니다.

따라서 Fedora가 버전 40이 될 때까지 아래 단계를 따를 필요가 없습니다. 그 이후에는 Cuda가 몇 달 동안 공식적으로 지원되지 않을 수 있습니다.

2023년 8월 업데이트됨:

질문을 올린 지 약 1년이 지났는데, 현재 최신 Fedora 38에는 gcc13이 있고 Nvidia에서 지원하는 최신 cuda 툴킷은 gcc12가 포함된 Fedora 37입니다. 위의 지침은 여전히 ​​작동하지만 CLion을 사용할 때 더 많은 컨텍스트를 추가하고 싶습니다.

Jetbrains 문서CLion에서 CMAKE 설정을 편집하는 것이 권장되었지만 전혀 작동하지 않았습니다. 대신에 나에게 효과가 있었던 것은 다음을 ~/.bash_profile(터미널에만 해당한다고 생각했기 때문에 .bashrc가 아님)에 넣은 다음 로그아웃했다가 다시 로그인하는 것이었습니다.

PATH="$PATH:/usr/local/cuda/bin"
CUDAHOSTCXX='/home/linuxbrew/.linuxbrew/bin/g++-12'; export CUDAHOSTCXX

rpm 저장소 방법을 사용하는 대신 로컬 실행 파일을 사용하여 Cuda 툴킷 12.2를 설치했습니다. 이러한 방법으로 인해 패키지 비호환성에 대한 끔찍한 메시지가 표시되었기 때문입니다. 실행 파일을 실행할 때, 그들이 제공하는 작은 명령줄 GUI에서 "드라이버 설치"를 선택 취소했는지 확인했습니다(이것은 "낮은 그래픽" 모드의 데비안 설치 프로그램과 다소 비슷합니다). 이렇게 하면 내가 설치한 rpmfusion akmod nvidia 드라이버가 중단되지 않습니다.

원래 답변:

먼저, Fedora 36을 설치하고 요청 시 타사 리포지토리를 활성화하도록 선택하세요.

그럼 (부터RPM 퓨전 NVIDIA 하우투 페이지):

sudo dnf install akmod-nvidia
sudo dnf install xorg-x11-drv-nvidia-cuda

modinfo -F version nvidia그런 다음 오류가 아닌 출력이 나올 때까지 1~2분 정도 기다립니다 .

그 다음에,재시작이렇게 하면 Nvidia 드라이버가 Nouveau보다 더 잘 작동합니다. 그러면 (부터RPM cuda fusion Howto 페이지):

sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora35/x86_64/cuda-fedora35.repo
sudo dnf clean all
sudo dnf module disable nvidia-driver
sudo dnf -y install cuda

첫 번째 줄의 35는 의도적인 것입니다. 게다가 module disable라인은아니요방금 설치한 기존 akmod nvidia 드라이버를 비활성화하고 대신 다음 줄에서 기존 드라이버 위에 Nvidia의 dkms 드라이버를 설치하지 못하도록 합니다.

그 후에 /usr/local/cuda/bin/nvcc는 작동하지만 .cu파일에서 실행하려고 하면 "gcc 12가 지원되지 않습니다"라는 메시지가 표시됩니다. 이를 무시하고 계속 진행하라는 플래그를 제공하지만 이 경고를 제거하려면 다음을 수행하여 gcc-11을 빠르게 얻을 수 있습니다.이 Reddit 스레드의 댓글.

첫 번째,홈브류 설치해당 지침을 따르십시오. 저는 기본 위치를 그대로 사용했지만 /home/linuxbrew원하시면 홈디렉토리 등 커스텀 위치에 설치하셔도 됩니다. 그럼 하세요 brew install gcc@11. 마지막으로 nvcc에 flag를 사용하여 gcc-11을 직접 사용하도록 지시하면 nvcc는 불만 없이 작동합니다. -ccbin예:

/usr/local/cuda/bin/nvcc -ccbin g++-11 foo.cu -o foo

어떤 이유로 Brew의 gcc-11이 기본 경로를 오염시키는 것을 원하지 않는 경우 환경 변수를 사용하여 nvcc에 항상 Brew의 gcc-11을 사용하도록 명시적으로 지시할 수 있습니다. 예를 들어 다음을 입력한 ~/bash_profile후 로그아웃하고 로그인합니다.

export NVCC_PREPEND_FLAGS='-ccbin /home/linuxbrew/.linuxbrew/bin/g++-11'

답변2

@xdavidliu의 방법은 글을 쓰는 시점에도 여전히 작동합니다. 현재 Fedora 39에는 gcc 13과 최근 출시된 cuda 12.3이 포함되어 있습니다. 비록 저는 Fedora 37의 최신 nvidia 저장소와 nvcc의 homebrew(cuda 12가 지원할 수 있는 최신 gcc)와 함께 gcc 12를 사용하고 있습니다. Fedora에서 패키지를 다운그레이드하는 것은 실망스럽지만 홈브루 방법은 매우 영리합니다. 덧붙이자면, dnf5를 사용하는 경우 충돌을 피하기 위해 dnf 및 dnf5에 대한 공식 nvidia 저장소에서 nvidia-driver 모듈을 비활성화해야 할 수도 있습니다. 고마워요 제이슨.

답변3

Fedora Core 38에 gcc 12.3을 설치할 수 있도록 "compat-gcc-12-3" RPM을 구축했습니다. 필요한 사양 문서를 얻을 수 있습니다여기. 이것이 당신이 하는 일입니다:

  • gcc 12.3 소스 RPM도 다운로드하세요 dnf download --source --releasever=37 gcc.
  • 설치하세요. 여러 파일을 ~/rpmbuild/SOURCESgcc.spec에 덤프해야 합니다 ~/rpmbuild/SPECS.
  • 새로 설치된 것과 위의 GitHub URL에 있는 것을 gcc.spec비교 해보세요. gcc-12-3.spec그것들은 동일해야 합니다.
  • 자유롭게 diff를 수행 gcc-12-3.spec하고 compat-gcc-12-3.spec내가 이상한 작업을 하고 있지 않은지 확인하십시오. 파일 이름을 바꾸고 필요하지 않은 항목을 삭제하면 됩니다.
  • 세워라! 그냥 달리고 rpmbuild -ba행복한 compat-gcc-12-3.spec몇 시간 후에 필요한 것을 얻게 될 것입니다!
  • 일반 gcc 설치로 충돌 없이 설치할 수 있는 새로 빌드된 compat-gcc-12-3, compat-gcc-12-3-c++및 패키지 compat-libstdc++-12-3를 설치합니다.compat-libstdc++-12-3-devel

관련 정보