시스템 날라감
RTX3090 x 4 / RTX A5000 x 4
2대의 시스템을 같은 전원에 물려 놓았더니, 불안정했는지 1대가 전원이 꺼져버렸다. 용량은 충분했는데 왜 꺼졌는지 원인을 알 수 없다.
그리고, 재수없게도 파일시스템이 날라갔다. 이것저것 다해봐도 복구가 되질 않는다.
그나마, 다행인 것은 날라간 시스템에 중요한 자료는 없었다는 것과, 다시 환경 세팅을 하려고 하니 귀찮음이…
우분투 20.04에 드라이버, CUDA, cuDNN 설치하는 과정을 기록해둔다.
tensorflow, pytorch 등은 docker로 사용하므로, 여기에는 따로 적지 않는다.
nvidia 드라이버, cuda 삭제
$ sudo apt-get remove --purge nvidia-*
$ sudo apt-get autoremove
$ sudo apt-get update
기존 설치된 nvidia 드라이버와 cuda를 깔끔하게 삭제한다.
nvidia 드라이버 설치
$ ubuntu-drivers devices
$ sudo apt-get install nvidia-driver-515
$ sudo apt-get install dkms nvidia-modprobe
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot
현재 내 시스템의 디바이스를 확인하고, 적절한 nvidia 드라이버를 설치한다.
nvidia 드라이버를 커널에 로드해주는 nvidia-modprobe도 같이 설치한다.
설치가 완료됐으면, 리부팅한다
$ nvidia-smi
nvidia-smi를 입력해서, nvidia 드라이버 상태, 디바이스 상태 등을 확인한다.
cuda 설치
cuda 설치를 위해 nvidia 개발자 사이트를 방문한다
https://developer.nvidia.com/cuda-toolkit-archive
$ wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run
$ sudo sh cuda_11.7.1_515.65.01_linux.run
wget으로 cuda 인스톨러를 다운로드 받고, sh로 실행한다.
설치가 진행되면, “Continu” 버튼을 클릭해서 계속 진행한다.
라이선스 동의 화면에서도 “accept” 입력한다.
nvidia 드라이버를 이미 설치했으므로, Driver는 제외하고, 화면상에 체크된 부분만 설치한다.
$ sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.7/bin'>> /etc/profile"
$ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64'>> /etc/profile"
$ sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.7'>> /etc/profile"
$ source /etc/profile
설치가 완료되면, PATH 설정을 진행하고, source 명령어로 적용시킨다.
$ nvcc -V
cuda 설치가 완료됐으면, nvcc -V 또는 nvcc –version 을 입력하여 설치됐는지 확인한다.
cuDNN 설치
cuDNN 사이트로 이동하고, 버전에 맞는 cuDNN을 다운로드 받는다.
https://developer.nvidia.com/cudnn
$ tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
$ cd cudnn-linux-x86_64-8.6.0.163_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*
다운로드 받은 cuDNN 압축을 풀고, /usr/local/cuda 디렉토리로 복사한다.
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn.so.8.6.0 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn.so.8
cuda 디렉토리와 실제 설치된 cuda-11.7 디렉토리를 심볼릭 링크 설정해준다.
$ sudo ldconfig
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
cuDNN 설정이 제대로 됐는지 확인하면 끝!
환경변수에 CUDARDIR이 맞나요?
아 오타 수정할께요.
CUDARDIR -> CUDADIR
환경변수 위에 2개만 쓰셔도 됩니다.
정성스러운 포스트 감사합니다. 덕분에 수월하게 설치했습니다.
도움이 되었다니 다행입니다. 감사합니다.
안녕하세요!
좋은정보 감사합니다.
다름이아니라 cuda와 cudnn 심볼릭링크는 꼭 걸어줘야되는건가요?
네. cudnn 압출 풀고, 복사하면 기존 심볼릭 링크가 사라지기 때문에 걸어주셔야 합니다.