본문 바로가기
테크 튜토리얼 & 팁

Nvidia RTX 4060Ti 기반 Ubuntu에서 CUDA + cuDNN + Tensorflow + Pytorch 설치

by 해시우드 2024. 5. 5.
반응형

넉넉한 GPU 메모리 구성으로 가성비 좋은 GeForce RTX 4060Ti 16G를 사용해 Ubuntu 리눅스 환경에서 머신러닝 모델을 연구하고 있습니다. 그동안 TensorFlow와 PyTorch 환경을 셋업하는 과정에서 만난 버전 호환성 문제로 고생을 많이 해서 설치에 성공했던 사례를 글로 정리하여 같은 문제를 겪고 계신 분들에게 도움이 되고자 합니다.

 

GPU 가속 머신러닝 개발환경을 구축하기 위한 첫걸음은 운영체제에서 GPU를 인식하도록 드라이버를 설치하는 것입니다. 그 후에는 TensorFlow와 PyTorch의 명령을 GPU로 전달하기 위해 CUDA와 cuDNN을 설치해야 하며, 마지막으로 TensorFlow 및 PyTorch 를 설치합니다. 각 단계마다 소프트웨어의 버전 호환성이 중요하며, 이를 잘 맞추는 것이 성공적인 설치의 핵심입니다. 서로 어떤 버전을 사용해야 최적화된 상태에서 NVIDIA GPU 기반 시스템 환경을 구축할 수 있는지 확인해보겠습니다.

 

Installing Nvidia CUDA, cuDNN, Tensorflow, Pytorch on Ubuntu 22.04 Linux

 

1. Nvidia GPU Driver 설치

lspci | grep -e VGA

 

컴퓨터에 인식된 그래픽 드라이브 정보 확인

lshw -C display

 

Ubuntu에서 자신의 GPU에 맞는 Driver 확인

ubuntu-drivers devices
tiger@hashwood:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:08.0/0000:06:00.0 ==
modalias : pci:v000010DEd00002803sv00001462sd00005174bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-535 - distro non-free recommended
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

 

실행 결과 nvidia-driver-535 드라이버를 권장하고(recommended) 있습니다. 권장하는 버전 이외의 최신 버전이 목록에 있을 수 있으나 딥 러닝 모델을 빌드하고 학습시키기 위한 TensorFlow의 keras, caffe와 같은 라이브러리에선 최신 드라이버에 맞는 성능을 지원하지 않을 수 있습니다. 그래서 무조건 최신 드라이버를 설치하는 것 보다, TensorFlow에서 요구하는 최소 버전 이상의 드라이버 중 테스트가 검증된 선택하는 것이 좋습니다. 현재 nvidia-driver-535를 추천하고 있지만, 테스트 중인 PC에서는 535 버전 드라이버 설치시 X-Windows 화면이 출력되지 않아 nvidia-driver-545 버전을 설치했습니다.

sudo apt install nvidia-driver-545

 

설치된 Nvidia GPU 정보 확인

nvidia-smi

 

위 명령을 실행 시 출력되는 화면은 다음과 같습니다.

tiger@hashwood:~$ nvidia-smi
Sun May  5 18:13:23 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06              Driver Version: 545.29.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| 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 4060 Ti     Off | 00000000:06:00.0  On |                  N/A |
|  0%   59C    P8              19W / 165W |   1569MiB / 16380MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A      1715      G   /usr/lib/xorg/Xorg                          942MiB |
|    0   N/A  N/A      1890      G   /usr/bin/gnome-shell                        111MiB |
|    0   N/A  N/A      2905      G   ...seed-version=20240503-130155.070000      338MiB |
|    0   N/A  N/A      3548      G   ...56,262144 --variations-seed-version      166MiB |
+---------------------------------------------------------------------------------------+

 

2. CUDA Toolkit 및 Driver 설치

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 에서 CUDA 버전 호환성을 위해 필요한 최소 드라이버 버전은 다음과 같습니다. 

CUDA Toolkit 버전 호환을 위한 최소 필요 드라이버 버전

 

Driver 별 CUDA Toolkit 버전 호환성을 확인합니다. CUDA 마이너 버전 호환성을 위해 필요한 최소 드라이버 버전은 다음과 같습니다. CUDA 마이너 버전 호환성은 https://docs.nvidia.com/deploy/cuda-compatibility/index.html 에 자세히 설명되어 있습니다.

CUDA Toolkit 및 해당 드라이버 버전

 

테스트된 Tensorflow 빌드 버전 확인

https://www.tensorflow.org/install/source?hl=ko#gpu

TensorFlow 홈페이지에 게시된 테스트된 빌드 구성

 

CUDA Toolkit 12.3 Update 2 설치

CUDA 애플리케이션을 개발하는 데 필요한 CUDA Toolkit 패키지를 설치합니다.

https://developer.nvidia.com/cuda-toolkit-archive

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin

sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600

wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb

sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb

sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

sudo apt-get -y install cuda-toolkit-12-3

 

CUDA 드라이버를 설치합니다. 

sudo apt install cuda-drivers

 

설치가 완료되면 다음과 같은 명령으로 cuda 버전을 확인할 수 있습니다.

nvcc -V
tiger@hashwood:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Nov_22_10:17:15_PST_2023
Cuda compilation tools, release 12.3, V12.3.107
Build cuda_12.3.r12.3/compiler.33567101_0

 

만약 명령어 'nvcc' 를 찾을 수 없다고 하면서 nvidia-cuda-toolkit을 설치하라고 한다면 .bashrc 파일에 다음과 같이 경로를 지정해주고 source ~/.bashrc 명령을 실행하면 됩니다.

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

 

3. cuDNN 설치

NVIDIA cuDNN은 딥 뉴럴 네트워크를 위한 GPU 가속 기반 라이브러리입니다.

https://developer.nvidia.com/cudnn-archive 에서 cuDNN 라이브러리를 다운로드 받을 수 있는데, 로그인 절차가 필요합니다.

 

위에서 테스트된 빌드버전으로 확인했던 버전의 cuDNN 라이브러리를 https://developer.nvidia.com/rdp/cudnn-archive 에서  찾아 Local Installer for Ubuntu22.04 x86_64 (Deb) 파일을 다운로드한 후 다음과 같이 설치합니다.

sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb

sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

sudo apt-get -y install cudnn

sudo apt install libcudnn8
sudo apt install libcudnn8-dev
sudo apt install libcudnn8-samples

 

4. TensorFlow 설치

sudo apt-get install python3-pip
pip install --upgrade pip
pip install pip numpy wheel packaging requests
pip install tensorflow

 

5. TensorFlow GPU 가속 테스트

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

 

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')] 가 출력되면 설치 성공

 

6. Pytorch 설치

pip install torch torchvision torchaudio

 

7. Pytorch GPU 가속 테스트

import torch
print(torch.cuda.is_available()) # should be True

t = torch.rand(10, 10).cuda()
print(t.device) # should be CUDA

 

다음과 같이 실행 되면 설치 완료

python3 test_torch.py

True
cuda:0

 

 

지금까지 2024년 5월 5일 기준으로 GeForce RTX 4060Ti를 사용하는 Ubuntu 22.04 운영체제 기반 PC에서 Tensorflow와 Pytorch를 위해 설치된 드라이버와 패키지들의 버전은 다음과 같습니다.


NVIDIA Driver = 545

CUDA = 12.3 Update 2

cuDNN = 8.9.7
TensorFlow = 2.16.1 (keras-3.3.3)

Pytorch = 2.3.0

 

반응형