밑에 나온 명령어를 우분투에 입력한다.
만약 wget 할 때 404가 뜬다면 앞에 sudo를 붙여주자
만약 잘못해서 재설치를 해야하는 상황이 온다면 /usr/local/cuda-현재버전 을 삭제하고 설치 명령어 맨 밑줄인
sudo apt-get -y install cuda-toolkil-12-3과 같이 설치된 패키지를 전부 삭제해야 한다.
sudo apt-get remove --purge 'cuda-*' 'nvidia-cuda-*'
sudo apt-get autoremove
이후 명령어를 다시 입력하자
https://developer.nvidia.com/rdp/cudnn-download
cudnn은 로그인을 해줘야 한다.
Local Installer for Linux x86_64 (Tar) <- 이 링크를 복사해주고 설치한다.
$ sudo wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.6/local_installers/12.x/cudnn-linux-x86_64-8.9.6.50_cuda12-archive.tar.xz/
--2023-11-26 00:16:07-- https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.6/local_installers/12.x/cudnn-linux-x86_64-8.9.6.50_cuda12-archive.tar.xz/
Resolving developer.nvidia.com (developer.nvidia.com)... 152.199.39.144
Connecting to developer.nvidia.com (developer.nvidia.com)|152.199.39.144|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://developer.nvidia.com/login [following]
--2023-11-26 00:16:08-- https://developer.nvidia.com/login
Reusing existing connection to developer.nvidia.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html’
index.html [ <=> ] 39.14K 243KB/s in 0.2s
2023-11-26 00:16:09 (243 KB/s) - ‘index.html’ saved [40075]
하지만 설치에서 오류가 난것 같다.
윈도우에서 다운로드 하고 우분투로 옮겨줬다.
$ mv /mnt/e/cudnn-linux-x86_64-8.9.6.50_cuda12-archive.tar.xz .
이후 압축을 풀어준다.
tar -xJvf cudnn-linux-x86_64-8.9.6.50_cuda12-archive.tar.xz
그리고 해당 폴더에서 필요한 파일들을 복사해준다.
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
그리고 편집기로 bashrc를 수정한다.
$ sudo vi ~/.bashrc
가장 밑 줄에 해당 코드를 삽입한다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.3/lib64/
i키를 눌러 입력 상태로 만들고 enter로 한 줄 밑으로 내리고 복사한 코드를 우클릭하고 cuda-12.3을 자신의 버전으로 바꾼다.
그리고 :키를 누르고 wq
그리고 변경사항을 환경에 반영한다.
$ source ~/.bashrc
이제 설치가 됐는지 확인한다.
파이썬으로 가서
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
해당 코드를 실행해 본다.
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 5123965297897187253
xla_global_id: -1,
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 10197401600
locality {
bus_id: 1
links {
}
}
incarnation: 2705891846653869562
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6"
xla_global_id: 416903419]
이런식으로 cpu 뿐 만 아니라 gpu도 나온다면 성공이다.
만약 안나왔다면
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
이 코드를 실행하고 다시 위 코드를 실행해 보자.
다른 코드로도 확인해 볼 수 있다.
import tensorflow as tf
# GPU 디바이스 확인
if bool(tf.config.list_physical_devices('GPU')):
# GPU 디바이스가 존재하면 TensorFlow가 GPU 지원을 하고 있다고 판단
print("GPU가 정상적으로 인식됨.")
else:
print("GPU가 인식되지 않음.")
참고
https://webnautes.tistory.com/1848
https://jimmy-ai.tistory.com/121