시스템 날라감

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

cuda 버전에 맞는 인스톨러를 선택한다. 보통은 runfile (local) 을 선택하면 된다.
cuda 버전에 맞는 인스톨러를 선택한다. 보통은 runfile (local) 을 선택하면 된다.
$ 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로 실행한다.

설치된 드라이버가 있다는 설정에 Continue
설치된 드라이버가 있다는 설정에 Continue

설치가 진행되면, “Continu” 버튼을 클릭해서 계속 진행한다.
라이선스 동의 화면에서도 “accept” 입력한다.

Driver 와 Kernel Objects 만 체크해제하고 인스톨을 진행한다
Driver 와 Kernel Objects 만 체크해제하고 인스톨을 진행한다

nvidia 드라이버를 이미 설치했으므로, Driver는 제외하고, 화면상에 체크된 부분만 설치한다.

cuda 설치가 완료되면 나오는 화면
cuda 설치가 완료되면 나오는 화면
$ 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 CUDARDIR=/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

cuDNN 다운로드 사이트
cuDNN 다운로드 사이트
버전에 맞는 인스톨러 선택, 본인은 cuda 11.7 버전을 설치했으므로, 11.x 선택했고, 리눅스이므로 Tar로 된 파일을 선택했다
버전에 맞는 인스톨러 선택, 본인은 cuda 11.7 버전을 설치했으므로, 11.x 선택 & 리눅스이므로 Tar로 된 파일을 선택했다
$ 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 설정이 제대로 됐는지 확인하면 끝!

cuDNN 링크가 제대로 됐는지 확인!!
cuDNN 링크가 제대로 됐는지 확인!!

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다