Ubuntu 22.04에서 PyTorch를 통해 RTX 2080 Ti를 활용하려 한다.
참고로 이전 버전 Ubuntu인 경우 최신 nvidia 드라이버를 설치할 수 없을 수도 있으니 OS 버전을 업그레이드해주어야 한다.
ubuntu는 update-manager-core 패키지를 통해 OS를 쉽게 업그레이드할 수 있다.
순서는 다음과 같다.
- Nvidia 그래픽 드라이버 설치
- CUDA 설치
- cuDNN 설치
- PyTorch 설치
1. Nvidia 드라이버 설치
CUDA 릴리즈 노트를 확인하고 최신 버전 직전의 버전(CUDA 12.1 & driver-535)을 설치했다.
$ sudo apt-get install nvidia-driver-535-server $ sudo apt-get install dkms nvidia-modprobe
드라이버는 크게 일반, server의 두 가지가 있으며 추가로 open 버전이 존재한다.
일반은 1년의 EOL(end-of-life), server는 2년의 EOL을 제공하고, open은 그 중에서도 nvidia 버전이 아닌 오픈소스버전을 제공한다. [stackoverflow]
일반적으로는 nvidia에서 제공하는 server 버전 설치가 권장된다.
설치가 끝나면 재부팅하자.
nvidia-smi로 설치가 잘 됐는지 확인할 수 있다.
$ nvidia-smi +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 2080 Ti Off | 00000000:09:00.0 Off | N/A | | 46% 56C P0 57W / 250W | 0MiB / 11264MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | No running processes found | +---------------------------------------------------------------------------------------+
2. CUDA 12.1 설치
최신 버전 직전의 버전인 CUDA 12.1.1를 내려받는다. [Nvidia]
(안타깝게도 23.07.27 시점에서 cuDNN 8.9.2.26 버전이 CUDA 12.2를 지원하지 않는다)
필자는 Ubuntu 22.04에서 run 파일을 받아 진행하였다.
홈페이지에서 내려받는 방법에 따라 설치 방법을 안내한다.
다음은 로컬에서 run 파일을 통해 설치하는 방법이다.
로컬에서 설치하다보니 파일 다운로드만해도 시간이 꽤 걸린다. (약 15분)
$ wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run $ sudo sh cuda_12.2.0_535.54.03_linux.run --toolkit --silent --override
3. cuDNN 설치
cuDNN은 DNN 연산을 위한 GPU 가속 라이브러리이다.
CUDA 버전에 맞는 cuDNN을 내려받자. [Nvidia]
필자는 CUDA 12.x에 맞는 최신 버전의 cuDNN을 내려받았다. (v8.9.2)
다운로드하려면 로그인이 필요하기 때문에 wget으로 내려받기에는 껄끄럽다.
윈도우에서 받아 서버에 넣어주거나 쿨하게 wget에 계정정보를 넣어 내려받자.
필자는 samba로 연결이 되어있기 때문에 윈도우로 받아 파일을 넣어주었다.
이후 아래처럼 패키지를 실행해주면 libcudnn이 설치된다.
CUDA 버전과 cuDNN 버전을 잘 맞추어 설치해주자. [guide]
libcudnn8-sample를 설치하면 샘플코드와 라이브러리 문서가 설치된다.
$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.2.26_1.0-1_amd64.deb $ sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.2.26/cudnn-local-4EB48413-keyring.gpg /usr/share/keyrings/ # GPG key 설정 $ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.2.26_1.0-1_amd64.deb $ sudo apt-get update # 패키지 목록 갱신 $ sudo apt-get install libcudnn8=8.9.2.26-1+cuda12.1 $ sudo apt-get install libcudnn8-samples=8.9.2.26-1+cuda12.1
4. PyTorch 설치
거창하게 챕터를 따로 떼놨지만 사실 별거 없다.
Anaconda로 설치해주기만 하면 된다.
쓸만한 유틸리티를 함께 설치해주자.
CUDA 버전에 유의하자.
$ conda install pytorch torchvision -c pytorch $ conda install -c nvidia/label/cuda-12.1.1 cuda-toolkit
최종 확인
만약 설치가 잘 됐다면 파이썬에서 다음과 같은 결과를 확인할 수 있을 것이다.
>>> import torch >>> torch.cuda.current_device() 0 >>> torch.cuda.device(0) <torch.cuda.device object at 0x7f1fb4b04890> >>> torch.cuda.device_count() 1 >>> torch.cuda.get_device_name(0) 'GeForce RTX 2080 Ti' >>> torch.cuda.is_available() True
cf. Torch not compiled with CUDA enabled
일부 패키지 업데이트 과정에서 버전이 틀어져버린 경우 CUDA 가속이 불가능해질 수 있다.
그 경우 아래의 커맨드를 이용한다. (본인에게 맞는 CUDA 버전을 사용하자) [PyTorch]
$ pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu121