0. GPU 제품에 따른 NVIDIA 권장 드라이버 설치
sudo ubuntu-drivers autoinstall
설치 후,
sudo reboot
nvidia-smi
1. GPU 제품명 확인
nvidia-smi --query | fgrep 'Product Name'
2. 전반적인 GPU 정보 확인
nvidia-smi
- Drivier Version : Nvidia GPU의 driver version을 나타낸다.
- CUDA Version : 현재 사용중인 driver와 호환이 잘 되는 (추천하는?) CUDA의 버전으로, 가능한 최저, 최고 버전이 아니므로 주의해야 한다.
- GPU Fan : GPU의 번호와 fan이 장착된 GPU의 fan 성능을 %로 표시해준다. (Fan 없으면 N/A (Not Available)로 표시됨)
- Name, Temp, Perf, Persistence-M, Pwr
- Name : GPU의 모델명
- Temp : GPU의 현재 온도(사용 중일 경우, 70~80도가 적정 온도)
- Perf : performance(P0~P12까지 있으며, 숫자가 작아질수록 성능이 좋은 상태)
- Persistence-M : persistence mode(on 시 power limit 설정 가능, default는 off)
- Pwr : GPU의 현재 전력 사용량/ 최대 용량
- Bus-Id, Disp.A, Memory-Usage
- Bus-Id : 메인 보드의 PCI slot에 지정된 Bus-ID (사용하는 GPU 번호와 PCI slot을 매칭할 수 있음)
- Dishp.A : 리눅스 설치 시 desktop version, server version를 설정할 수 있는데, desktop version인 경우 GPU로 화면 출력을 한다. 화면 출력을 하는지의 엽를 나타내며, 서버 버전일 경우 무시하면 된다.
- Memory-Usage : 현재 사용중인 GPU의 메모리와 GPU의 총 메모리를 나타낸다.
- MiB : Mega binary byte의 약자로, 1 Megabyte는 실제 1000^2 byte를 의미하는데, 실제 2진법을 사용한 경우 혼동을 막고자 i를 추가하여 2진법으로 나타낸다. 즉, 1 Mega binary byte는 1024^2 byte이다.
- GPU-Util : GPU의 현재 사용량을 %로 나타낸다.
- Processes : GPU 사용을 시작하면 현재 사용 정보를 알려준다.
- GPU : GPU 번호를 나타낸다.
- Type : GPU의 2가지 타입으로, G 또는 C의 값을 갖는다.
- G : Graphics, 그래픽을 사용하는 경우이다. (graphic mode)
- C : Compute, CUDA library로 병렬 계산을 진행하는 경우를 나타낸다. (compute mode)
- C+G : compute-mode와 graphic-mode를 함께 사용하는 process를 나타낸다.
3. CUDA Toolkit 버전 선택
2.에서 살펴본 Nvidia driver 버전에 따른 사용 가능한 CUDA 버전을 다음 링크에서 제공한다.
NVIDIA DRIVE 버전 / CUDA 버전
그림 1.

이 정보를 GPU별 Capacity 정보와 같이 보아야 한다.
GPU Capacity
그림 2.

그림 3.

나의 경우에는,
GPU의 driver version이 470.129.06
-> 그림1., GPU에서 CUDA 11.5 Update 2를 포함한 이전 버전의 CUDA Toolkit을 모두 사용가능
-> 그림2., GPU 모델명이 GTX 2080Ti이므로 Capacity가 7.5
-> 그림3., CUDA 10.0부터 사용이 가능하다
설치 후,
sudo reboot
nvcc -V or nvcc --version
4. Tensorflow 버전과 CUDA Toolkit 버전
CUDA Toolkit 버전을 찾아보는 이유는 Tensorflow 버전과의 호환성 때문이다.
CUDA 버전에 따라 지원하는 Tensorflow 버전은 다음 링크에서 알 수 있다.
CUDA 버전 / Tensorflow 버전

5. CuDNN 설치
Tensorflow 버전과 CUDA Toolkit 버전이 정해졌다면 이에 맞는 CuDNN 설치가 필요하다.
CuDNN 설치를 위해서는 NVIDA 사이트에 로그인이 필요하다.
최신 버전이 아닌 이전 버전의 CuDNN 설치를 원한다면 CuDNN Archive에서 다운 받으면 된다.
CuDNN 다운로드
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cuda/lib64/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
참고 문헌