데비안 8 (Jessie) 또는 9 (Stretch)에 CUDA Toolkit 7/8/9를 설치하는 방법은 무엇입니까?


26

데비안 8에 Cuda Toolkit 7.0 또는 8 을 설치하는 방법은 무엇입니까?

데비안 8에는을 사용하여 CUDA 툴킷 6.0다운로드하고 설치 하는 옵션이 제공된다는 것을 알고 있습니다 apt-get install nvidia-cuda-toolkit. 그러나 CUDA 툴킷 버전 7.0 또는 8에 대해 어떻게합니까?

아래 설명과 같이 Ubuntu 설치 프로그램을 사용하여 설치를 시도했습니다.

sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb

dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb

sudo apt-get update

sudo apt-get install -y cuda

그러나 작동하지 않고 다음 메시지가 리턴되었습니다.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 cuda : Depends: cuda-7-0 (= 7.0-28) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

@ Nullgeppetto : 아래 내 답변의 지침을 따르십시오 :-)
einpoklum-복원 Monica Monica

답변:


30

다음 지시 사항은 CUDA 7.0, 7.5 및 여러 이전 (아마도 이후) 버전에 유효합니다. 데비안 배포판까지는 Jessie 및 Stretch 및 기타 버전에 유효합니다. 그들은 amd64 (x86_64) 아키텍처를 가정하지만 x86 (x86_32)에 맞게 쉽게 조정할 수 있습니다.

설치 전제 조건

  • g ++ -CUDA 버전에서 지원하는 최신 GCC 버전을 사용해야합니다. CUDA 7.x의 경우 이것은 4.x 행의 마지막 버전 인 4.9.3입니다. CUDA 8.0의 경우 GCC 5.x 버전이 지원됩니다. 배포판에서 기본적으로 GCC 5.x를 사용하는 경우 GCC 5.4.0을 사용하십시오. 이전 버전은 사용할 수 있지만 호스트 측 코드에 대한 최신 C ++ 기능 지원을 위해서만 권장하지는 않습니다.
  • gcc -g ++와 함께 제공됩니다. 심지어 CMake는 -x스위치 가있는 경우 일부 경우에 nvcc가 g ++ 대신 gcc를 호출하도록 기본 설정 할 수 있다고 생각 합니다 (그러나 확실하지는 않습니다).
  • libGLU -Mesa OpenGL 라이브러리 (+ 개발 파일?)
  • libXi -X 윈도우 시스템 Xinput 확장 라이브러리 (+ 개발 파일?)
  • libXmu -X 윈도우 시스템 "기타 유틸리티"라이브러리 (+ 개발 파일?)
  • Linux 커널 -실행중인 커널 버전의 헤더

특정 패키지 목록을 원한다면 정확히 어떤 배포판에 따라 다르지만 다음을 시도하십시오 (CUDA 7.x의 경우).

sudo apt-get install gcc g++ gcc-4.9 g++-4.9 libxi libxi6 libxi-dev libglu1-mesa libglu1-mesa-dev libxmu6 libxmu6-dev linux-headers-amd64 linux-source

-dbg심볼 디버깅을 위해 해당 패키지의 일부 버전을 추가 할 수도 있습니다 .

확실이 커버 다 -하지만 난 그냥 이미 설치 한 뭔가를 놓친 것. 또한 CUDA는 적어도 실험적 으로 clang과 함께 작동 할 수 있지만 시도하지는 않았습니다.

CUDA 커널 드라이버 설치

  1. NVIDIA CUDA 다운로드 페이지로 이동 하십시오 .
  2. Linux> x86_64> Ubuntu 및 최신 버전을 선택하십시오 (작성 시점 : Ubuntu 15.04).
  3. .run 파일 옵션을 선택하십시오 .
  4. .RUN 파일 (현재 다운로드 이 하나 ). 확인 하지 그것을에 넣어 /tmp.
  5. .run 파일을 실행 가능하게 만드십시오 chmod a+x cuda_7.5.18_linux.run..
  6. 뿌리가 되십시오.
  7. .run 파일을 실행하십시오. 바보 축소 랩 라이센스를 수락하는 척하십시오. NVIDIA 커널 드라이버 만 설치하려면 "예"라고 말하고 다른 모든 것에 대해서는 "아니오"라고 말하십시오.

설치는 NVIDIA 커널 드라이버를 설치했을 것으로 예상하지만 툴킷 설치를 계속 / 다시 시도하기 전에 재부팅해야한다는 것을 알려줍니다. 그래서...

  1. 분명히 성공했다면 재부팅하십시오.

CUDA 자체 설치

  1. 뿌리를 내십시오.
  2. 찾아서 실행 cuda_7.5.18_linux.run
  3. 이번에는 드라이버 설치에 대해 아니오라고 말하고 다른 모든 것을 설치하려면 예라고 말하고 기본 경로를 그대로 사용하십시오 (또는 원하는 경로를 변경하십시오).

설치 프로그램이 실패 할 수 있습니다. CUDA 7.0 또는 7.5는 최대 gcc 4.9를 지원하며 기본적으로 일부 5.x 버전이 있습니다. 이제 누락 된 라이브러리 에 대한 메시지가 표시되면 위의 전제 조건에 대한 위의 지침이 어떻게 든 실패했음을 의미하므로 여기에 의견을 써서 수정할 수 있습니다. "실패"라고 가정하면 다음을 수행하십시오.

  1. 이번에는 --override 옵션을 사용하여 .run 파일을 다시 호출하십시오.
  2. 11 단계에서와 동일한 선택을하십시오.

CUDA는 이제 기본적으로 /usr/local/cuda심볼릭 링크 아래에 설치되어야합니다 . 그러나 우리는 끝나지 않았습니다!

올바른 g ++ 버전을 사용하도록 NVIDIA의 nvcc 컴파일러 지시

NVIDIA의 CUDA 컴파일러는 실제로 링크 프로세스의 일부로 g ++를 호출하거나 .cu 파일이 아닌 실제 C ++를 컴파일합니다. 내 생각에 어쨌든, 기본적으로 경로에있는 것을 실행합니다 g++. 그러나 아래 에 다른g++ 것을 배치 /usr/local/cuda/bin하면 먼저 사용합니다! 그래서...

  1. 실행하십시오 symlink /usr/bin/g++-4.9 /usr/local/cuda/bin/g++(그리고 좋은 측정을 위해 아마도 수도 있습니다 symlink /usr/bin/gcc-4.9 /usr/local/cuda/bin/gcc.

그게 다야.

설치 시도

  1. cd /root/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd
  2. make

빌드가 성공적으로 완료되고 완료되면

  1. ./vectorAdd

다음과 같은 결과가 나타납니다.

root@mymachine:~/NVIDIA_CUDA-7.5_Samples/0_Simple/vectorAdd# ./vectorAdd
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done

노트

  • NVIDIA GDK (GPU 개발 키트)를 설치할 필요는 없지만 아프지 않으며 일부에는 유용 ​​할 수 있습니다. 시스템의 루트 디렉토리에 설치하십시오. 꽤 안전하고 나중에 제거 프로그램이 /usr/bin/uninstall_gdk.pl있습니다. CUDA 8에서는 이미 CUDA 자체 IIANM에 통합되어 있습니다.
  • nvidia -... 또는 cuda ...와 같은 이름으로 추가 패키지를 설치하지 마십시오. 그들은 아프지 않을 수도 있지만 분명히 도움이되지 않습니다.
  • 이러한 작업을 수행하기 전에를 사용하여 GPU가 전혀 인식되는지 확인하고 싶을 수 있습니다 lspci | grep -i nvidia.

... 음, 거의 모든 것 : 물론 루트가 아니라면 커널 드라이버를 설치할 수 없습니다. 그러나 CUDA 코드가 없으면 CUDA 코드를 빌드 (실행) 할 수 없습니다.
einpoklum-복직 모니카

이것을 시도했습니다. cuda 설치 프로그램은 설치를 거부합니다. .deb 파일을 사용해야한다는 경고와 함께 구제됩니다.

@WernerVanBelle : 별도의 질문으로 게시 할 수 있습니까? 또는 경고가 너무 짧으면 적어도 인용하십시오? 또한 IIRC에는 "force"명령 줄 옵션이 있습니다. 시도해 보셨습니까?
einpoklum-복직 모니카

이 모든 - 드라이버 설치를 제외하고 - 또한 당신의 홈 디렉토리에 루트가 아닌 사용자로 수행 할 수 있습니다,하지만은 충분히 될 것이다 구축 하지, CUDA 코드를 실행 하여. 이를 위해서는 커널에 적절한 nVIDIA 드라이버가 필요하며 루트 사용자 만이이를 수행 할 수 있습니다. 다른 제안을 한 이전 의견에 대해 죄송합니다. 또한 루트가 아닌 사용자로 빌드하려면 배포판에 최신 버전 만있는 경우 고유 한 gcc / g ++ 버전을 빌드해야합니다 (CUDA 7.x의 경우 gcc 4.9.3 필요).
einpoklum-복직 모니카

@celavek :이 답변이 데비안 9를 충분히 다루지 못한다고 생각되면 제안 된 편집을하기 전에 이유를 설명하십시오.
einpoklum-복원 Monica Monica

6

백 포트를 사용하여해야한다고 생각합니다. 실제로 nvidia-cuda-toolkit데비안 제시에 7.5를 부드럽게 설치하고 있습니다.

에 무료가 아닌 백 포트를 추가하십시오 /etc/apt/sources.list. 나를 위해 (jessie) 나는 이것을 내 파일의 맨 아래에 넣었습니다.

# jessie-backports
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free

저장, apt-get 업데이트 및 마지막으로 :

apt-get install -t jessie-backports nvidia-cuda-toolkit

1

source.list에 contrib 및 non-free repos를 추가하고 apt-get 업데이트를 실행 한 후 CUDA 툴킷은 nvidia-cuda-toolkit 아래 Synaptic에 있습니다.


1

구형 GPU (GT 720)를 사용하는 데비안 9 "스트레치"에는 추가 단계가 필요합니다. 위의 누군가 (@celavek)가 이것을 보았으므로 나를 위해 일한 것을 채워 드리겠습니다. 허용되는 답변은 필요한 거의 모든 것을 다룹니다. 이것을 인식하는 것은 꽤 틈새 예이지만, 여기에 사람들에게 몇 가지 Google 검색을 저장하는 유용한 것들이있을 수 있습니다.

1 단계에서 CUDA 8.0의 경우 "레거시 릴리스"를 클릭하고 "CUDA 툴킷 8.0 GA 2"를 선택하십시오. 그런 다음 Linux, x86_64, Ubuntu, 16.04, runfile (로컬).

패키지 드라이버를 수락하지 않고 대신 GPU에 이전에 설치 한 384.130 드라이버를 사용했습니다. 여기에 대한 더 많은 정보 : Debian Wiki . 마일리지가 다를 수 있습니다. GT 720 이외의 다른 카드로는 말할 수 없습니다. 이것이 제가 선택한 길입니다. 후회는 없습니다 (아직).

12 단계에서 로컬 InstallUtils.pm을 사용할 수 없어서 설치에 실패하면 cuda_8.0.61_375.26_linux.run 파일의 압축을 풀고 --tar mxvf 플래그로 실행해야합니다. 그런 다음 루트로 InstallUtils.pm을 / usr / lib / x86_64-linux-gnu / pearl-base에 복사하십시오.

./cuda_8.0.61_375.26_linux.run --tar mxvf
sudo cp InstallUtils.pm /usr/lib/x86_64-linux-gnu/perl-base

이제 12 단계 명령이 성공해야합니다.

데비안 9.0에는 g ++ 버전 6 이상이 포함되어 있습니다. 15 단계에서 vectorAdd 컴파일이 실패합니다. 이 백서 : 여러 버전의 GCC 를 설치하여 버전 5.5.0을 설치했습니다. 5.5.0의 경우이 파일이 필요합니다.

wget http://mirrors.concertpass.com/gcc/releases/gcc-5.5.0/gcc-5.5.0.tar.xz

다음과 같이 tarball의 압축을 풉니 다.

tar -xJf gcc-5.5.0.tar.xz

이 작업을 수행하려면 몇 가지 사항 (라이브러리를 업데이트하고 32 비트 컴파일 추가)이 필요했습니다.

sudo apt-get install libgmp3-dev libmpfr-dev libmpc-dev
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

이제 컴파일러를 구성, 제작 및 설치할 수 있습니다.

--prefix = / usr / local / gcc / 5.5.0 플래그 로 구성해야합니다

이제 15 단계에서 vectorAdd 예제를 다음과 같이 컴파일 할 수 있습니다.

make HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++

아니면 이거:

export HOST_COMPILER=/usr/local/gcc/5.5.0/bin/g++
make

Makefile을 수정할 필요가 없으며 컴파일러 재정의를 올바르게 처리합니다.

이제 작동중인 CUDA 8.0을 설치해야합니다.


0

이 페이지에서 Ubuntu 용 네트워크 설치 프로그램을 사용해보십시오.

https://developer.nvidia.com/cuda-downloads#linux

Ubuntu 14. * 용 설치 프로그램은 충분히 호환 가능해야합니다.


1
우분투 설치 프로그램이 작동하지 않는다고 언급 했어야합니다.이를 반영하여 게시물을 업데이트했습니다.
Greg

@Greg, 데비안에서 Cuda를 설치하는 방법을 알아 냈습니까?
nullgeppetto

@ nullgeppetto 나는 극복 할 수없는 호환성 문제가 너무 많아서 데비안 아이디어를 포기했습니다.
그렉

@ 그렉, 흠, 그게 내가 무서웠 어. 그래서, 우분투 나 다른 것을 위해 가봤 니? 개인적으로, 나는 여전히 gtx 960을 기다리고 있습니다. 데비안을 사용해 보도록하겠습니다. 원한다면 알려 드리겠습니다.
nullgeppetto

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.