Install CUDA 11.8 & CUDNN 8.9.1 on Ubuntu 20.04

이용욱·2023년 11월 17일
0
post-thumbnail

PC환경
CPU : AMD® Epyc 7713p 64-core processor × 128
VGA : RTX 4090 24GB 4EA
Memory : 251GB
OS : Ubuntu 20.04

1. CUDA

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

NOTE: 이미 호환되는 driver 확인 후 설치하였으니 여기서 driver는 해제하고 설치한다

설치가 완료되면 아래처럼 뜬다

여기서 뜨는 WARNING은 graphic driver를 같이 설치하지 않아서 뜨는 것

때문에 호환되는 드라이버를 설치하였다면 무시해도 무방하다


Summary

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-11.8/

Please make sure that

  • PATH includes /usr/local/cuda-11.8/bin
  • LD_LIBRARY_PATH includes /usr/local/cuda-11.8/lib64, or, add /usr/local/cuda-11.8/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.8/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 520.00 is required for CUDA 11.8 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run --silent --driver

Logfile is /var/log/cuda-installer.log


설치 후 경로 설정을 해줘야 진짜 끝난다

gedit ~/.bashrc

제일 아래에 두 줄 추가
(cuda-11.8로 경로설정 해줘도 되지만 cuda 버전 여러 개 설치할 가능성도 있기에 cuda로 했다)

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc

명령어 입력 시 제대로 출력되면 성공

nvcc -V

2. CUDNN

https://k2-fsa.github.io/k2/installation/cuda-cudnn.html#install-cudnn-for-cuda-11-8

wget https://huggingface.co/csukuangfj/cudnn/resolve/main/cudnn-linux-x86_64-8.9.1.23_cuda11-archive.tar.xz
tar xvf cudnn-linux-x86_64-8.9.1.23_cuda11-archive.tar.xz

압축 풀린 파일들을 /ur/local/로 복붙 및 권한 설정

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

명령어 입력 시 제대로 출력되면 성공

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
sudo ldconfig

을 치면 다음과 같은 오류가 발생

$ sudo ldconfig
/sbin/ldconfig.real: /usr/local/cuda/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
$ cd /usr/local/cuda-11.8/lib64
$ ls -lha libcudnn*

제일 상단에 libcudnn.so, so.8, so.8.9.1 파일들에 링크가 없는걸 볼 수 있음. 이걸 다시 만들어줘야함.

sudo ln -sf libcudnn.so.8.9.1 libcudnn.so.8
sudo ln -sf libcudnn.so.8 libcudnn.so

sudo ln -sf libcudnn_adv_infer.so.8.9.1 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_adv_infer.so.8 libcudnn_adv_infer.so

sudo ln -sf libcudnn_adv_train.so.8.9.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_train.so.8 libcudnn_adv_train.so

sudo ln -sf libcudnn_cnn_infer.so.8.9.1 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8 libcudnn_cnn_infer.so

sudo ln -sf libcudnn_cnn_train.so.8.9.1 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_cnn_train.so.8 libcudnn_cnn_train.so

sudo ln -sf libcudnn_ops_infer.so.8.9.1 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_ops_infer.so.8 libcudnn_ops_infer.so

sudo ln -sf libcudnn_ops_train.so.8.9.1 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_train.so.8 libcudnn_ops_train.so
ls -al libcudnn.so*

심볼릭 링크가 형성됨

sudo ldconfig

cuDNN 설정이 제대로 됐는지 확인하면 끝!

ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

설치 확인 방법 정리

1.nvidia 드라이버 설치 확인 방법

nvidia-smi

2.cuda 설치 확인 방법

nvcc -V

3.cudnn 설치 확인 방법

ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

4.GPU 사용량 실시간 확인

  watch -d -n 0.5 nvidia-smi

메모리와 온도를 0.5초마다 갱신되게 함

profile
자율주행에 관심이 있으며, Lidar SLAM을 공부하고 있습니다. [개인 홈페이지 : https://woogiee.wixsite.com/youngwooklee]

1개의 댓글

comment-user-thumbnail
2024년 3월 27일

와 감사합니다. 그대로 진행하니 되네요(에러까지 ㅎㅎ) ***tensorflow가 호환이 안되서 cudnn은 8.6.0으로 재설치 진행했습니다!

답글 달기