본문 바로가기
배우기/GPU프로그래밍

[CUDA] Ubuntu CUDA 설치하기

by cwin 2024. 3. 11.

크게 3단계로 구성됨

1. Nvidia-driver 설치하기

[검색] --> "Additional Drivers" 에서 바로 설치 가능!

(nvidia-driver 525를 설치하고 싶었지만, 수동으로 command로 설치하였더니 ubuntu에서 지원을 안하는지 재부팅시 블랙스크린 따라서, OS에서 추천해주는 드라이버 중에서 가장 최신 버전만 아니면 될 것 같다는 결론...설치도 더 쉬움,,)

 

설치 확인

$ nvidia-smi

 

우측 상단에 "CUDA Version:12.2"은 CUDA가 12.2로 설치됐다는 의미가 아니다!

현 드라이버로는 12.2 버전까지 잘 작동할 수 있다는 의미로 받아들이면 된다.

(개인적인 경험으로는 nvidia-driver는 적당히 높은 버전으로 설치해도 문제 없는듯하다.)

 

추가)

실험 결과 Ubuntu가 native인 경우, 아래 CUDA  설치 중에 package도 일치하는 버전으로 자동으로 변경된다.

이후에 추가적인 driver Update는 cuda toolkit 인식 오류를 불러오니, cuda를 완전히 밀고 드라이버부터 재설치 해야함..

WSL인 경우는 window에 깔린 driver의 버전이 최소치만 넘는다면, 그대로 호환되어 사용된다...굳이 맞추고 싶다면 맞춰도 되지만, 안해도 된다..

 

2. CUDA toolkit 설치하기

 

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

CUDA Toolkit 11.8 Download File 받기

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
$ sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda

 

해당 페이지 아래에 나오는 명령어들을 그대로 진행하면 된다.

 

[Trouble Shooting]

 

CUDA toolkit을 설치했지만 'nvcc' 명령어가 사용되지 않는 경우

user@VivobookHC:~$ nvcc -version

Command 'nvcc' not found, but can be installed with:

sudo apt install nvidia-cuda-toolkit

 

위 shell이 추천한 [sudo apt install nvidia-cuda-toolkit]을 설치하고도 안되는 경우가 존재함!

위 명령어 사용전에 밑의 경로 지정을 먼저 해보자

 

bashrc에 경로를 정해주면 해결됨!

nvcc는 'CUDA comiler'로 이미 설치한 toolkit안에 존재하지만, 경로를 못잡고 있던 경우였음.

.bashrc 파일에 Library 경로를 추가해준다.

$ sudo vi ~/.bashrc
$ export PATH="/usr/local/cuda-11.8/bin:$PATH"
$ export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH"

수정 내용 터미널 적용

$ source ~/.bashrc
or
$ sudo reboot --> 더 추천

 

[CUDA toolkit 11.8] !설치 완료!

user@VivobookHC:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

 

3. cuDNN 라이브러리 설치하기

https://developer.nvidia.com/rdp/cudnn-archive

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

 

 

'Local Installer for Linux x86_64(Tar)' 다운받아서 직접 tar 압축 해제후 라이브러리에 옮겨넣는 작업이 깔끔한 것 같다.

 

1. Download 디렉터리로 이동

cd Download

 

2. tar 압축해제

$ tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz

(파일명은 알아서 수정하시길 바랍니다.)

 

3. 압축 해제된 폴더들 cuda 디렉터리로 옮기기

cd cudnn-linux-x86_64-8.9.7.29_cuda11-archive
sudo cp include/cudnn* /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

 

4. 링크 설정하기

sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.9.7 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.9.7  /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.9.7  /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.9.7  /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.9.7  /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.9.7 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn.so.8.9.7 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn.so.8

 

5. 설치 확인

# cuDNN 8.x.x 이후 버전
$ cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

 

[결과 화면]

grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

 

'배우기 > GPU프로그래밍' 카테고리의 다른 글

[Ubuntu 22.04] TensorFlow 2.x.x 설치하기  (0) 2024.03.11
[CUDA] 윈도우 CUDA 설치 방법  (1) 2024.03.04