nvidia driver 설치
1
sudo apt update
1
2
ubuntu-drivers devices
sudo apt install -y ubuntu-drivers-common
CUDA Toolkit 설치
설치 사이트 : https://developer.nvidia.com/cuda-11-6-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local
나의 경우 11.6 버전을 설치하려고 한다. wsl2이므로 아래와 같이 선택한다.
1
2
3
4
5
6
7
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
다 설치하고 나면 환경 설정을 해줘야 한다.
1
sudo vim ~/.bashrc
~/.bashrc
파일을 열어 경로를 추가해준다.
1
2
export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH
- 설치 확인
1
2
3
4
5
6
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_Mar__8_18:18:20_PST_2022
Cuda compilation tools, release 11.6, V11.6.124
Build cuda_11.6.r11.6/compiler.31057947_0
1
2
3
4
5
$ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64' >> /etc/profile"
$ sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.2' >> /etc/profile"
$ source /etc/profile
CuDNN 설치
Toolkit 11.6에 맞는 cuDNN v8.4.0 설치
설치 사이트 : https://developer.nvidia.com/rdp/cudnn-archive
방금 설치한 CUDA toolkit 버전에 맞게 설치해주어야 한다. 나의 경우 11.6버전을 설치했기에 cuDNN v8.4.0을 설치하고자 한다. ubuntu18.04를 사용하고 있으므로 18.04에 대한 버전으로 선택한다.
회원 전용 페이지이므로 wget
또는 curl
이 먹히지 않을 수 있으니, 직접 다운로드한다.
다운을 받고 나면, deb파일을 압축 풀어준다.
1
ar vx cudnn-local-repo-ubuntu1804-8.4.0.27_1.0-1_amd64.deb
1
tar xvf control.tar.gz
1
tar xvf data.tar.xz
data.tar.xz파일 압축을 풀면, etc
,usr
,var
3개의 폴더가 생성된다. 각각 자신의 디렉토리에 복사해 넣는다.
(여기에 include폴더가 있어야 환경 설정이 가능한것 같은데,, 11.6버전 실패해서 11.1로 재설치함)
Toolkit 11.1에 맞는 cuDNN v8.0.5 설치
cudatoolkit v11.0 설치 사이트 : https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=WSLUbuntu&target_version=20&target_type=deblocal
11.1에 맞는 버전은 8.0.5이므로 이에 대해 설치해보려고 한다.
linux를 설치하면 tgz압축 파일이 다운받아진다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ tar zxvf cudnn-11.1-linux-x64.v8.0.5.39.tgz
cuda/include/cudnn.h
cuda/include/cudnn_adv_infer.h
cuda/include/cudnn_adv_train.h
cuda/include/cudnn_backend.h
cuda/include/cudnn_cnn_infer.h
cuda/include/cudnn_cnn_train.h
cuda/include/cudnn_ops_infer.h
cuda/include/cudnn_ops_train.h
cuda/include/cudnn_version.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.8
cuda/lib64/libcudnn.so.8.0.5
cuda/lib64/libcudnn_adv_infer.so
cuda/lib64/libcudnn_adv_infer.so.8
cuda/lib64/libcudnn_adv_infer.so.8.0.5
...
- 파일 옮기기
1
2
$ sudo cp cuda/include/cudnn* /usr/local/cuda-11.1/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64
- 권한 설정
1
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h /usr/local/cuda-11.1/lib64/libcudnn*
- 버전 확인
1
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
- symbolic link
1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8.0.5 /usr/local/cuda-11.1/targets/x86_64-linux/lib/libcudnn.so.8
- 설정 확인
1
2
3
4
5
6
7
8
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.0.5
libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.0.5
libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.0.5
libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.0.5
libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.0.5
libcudnn.so.8 -> libcudnn.so.8.0.5
libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.0.5
- 설정 적용
1
2
$ sudo ldconfig
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
여기서 에러가 뜨고 있는데, 해당 파일을 링크걸어도 에러가 계속 뜬다. 이는 현재 내가 wsl2를 사용하고 있는 상황에서 발생하는 문제이다. 따라서 windows에서 cmd
를 관리자 권한으로 실행하여 진행한다.
1
2
3
4
5
$ cd lxss/lib
$ del libcuda.so
$ del libcuda.so.1
$ mklink libcuda.so libcuda.so.1.1
$ mklink libcuda.so.1 libcuda.so.1.1
참고 자료 : https://github.com/microsoft/WSL/issues/5663#issuecomment-1068499676
1
2
$ sudo apt upgrade
$ sudo ldconfig
Anaconda를 활용하여 cudatoolkit 및 cudnn 설치
참고 사이트 : https://eehoeskrap.tistory.com/293
1
conda install -c conda-forge cudatoolkit==11.1 cudnn
1
conda list
- 패키지 삭제
1
conda remove cudatoolkit
Nvidia driver 삭제
1
sudo apt remove --purge '^nvidia-.*'
CUDA 삭제
- cuda 패키지 확인
1
apt list | grep cuda
- cuda 패키지 삭제
1
2
sudo apt --purge remove 'cuda*'
sudo apt autoremove --purge 'cuda*'
패키지를 삭제하면 폴더가 삭제되지만, 삭제되지 않았다면, 직접 삭제해준다.
- cuda 파일 삭제
1
sudo rm -rf /usr/local/cuda-11.6
reference
- cuda : https://blog.naver.com/PostView.nhn?blogId=qbxlvnf11&logNo=222354396765
- cuda : https://rdmkyg.blogspot.com/2021/12/ubuntu-2004-nvidia-gpu-cnn-2021-12-3.html
- cuda : https://blog.naver.com/PostView.naver?blogId=phoenixqq&logNo=222540035363
- cudatoolkit,cudnn : https://webnautes.tistory.com/1479
- anaconda : https://cceeddcc.tistory.com/4
- gpu 최적화 : https://byeongjo-kim.tistory.com/34