안녕하세요 steady-code입니다. 최근 chatgpt 가 공개되면서 딥러닝에 관심을 갖거나 혹은 이미 딥러닝을 공부하고 계시는 개발자 분들이 증가하고 있습니다. 본 포스팅은 Tensorflow, Pytorch 등의 딥러닝 개발 프레임워크를 사용하기 전, GPU를 활용하기 위해 필수적으로 진행해야하는 CUDA 설치에 관한 내용을 담았습니다.
목차 1. CUDA 설치 2. 설치 확인 |
1. CUDA 설치
1. 먼저 wget 명령어를 통해 nvidia package 를 가져옵니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
2. 그 다음 wget 명령어를 통해 deb 파일을 가져옵니다.
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb
위 명령어를 진행하면 다음과 같은 출력이 나옵니다.
Resolving developer.download.nvidia.com (developer.download.nvidia.com)... 152.199.39.144
Connecting to developer.download.nvidia.com (developer.download.nvidia.com)|152.199.39.144|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2681112370 (2.5G) [application/x-deb]
Saving to: ‘cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb’
cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb 100%[===================================================================================================================================================================================================================>] 2.50G 10.3MB/s in 6m 44s
2023-01-27 15:44:28 (6.33 MB/s) - ‘cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb’ saved [2681112370/2681112370]
3. dpkg 명령어로 package install
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb
위 명령어를 실행하면 다음과 같은 출력이 나옵니다.
Selecting previously unselected package cuda-repo-ubuntu2004-11-6-local.
(Reading database ... 189963 files and directories currently installed.)
Preparing to unpack cuda-repo-ubuntu2004-11-6-local_11.6.0-510.39.01-1_amd64.deb ...
Unpacking cuda-repo-ubuntu2004-11-6-local (11.6.0-510.39.01-1) ...
Setting up cuda-repo-ubuntu2004-11-6-local (11.6.0-510.39.01-1) ...
The public CUDA GPG key does not appear to be installed.
To install the key, run this command:
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
4. key add
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
5. apt-get 으로 install
sudo apt-get update
sudo apt-get -y install cuda
2. 빌드확인
1. repository 확인
ls usr/local/cuda
bin compute-sanitizer doc DOCS EULA.txt extras gds include lib64 libnvvp nsightee_plugins nvml nvvm README res share src targets tools version.json
2. nvcc (NVIDIA CUDA Compiler) 명령어 실행
nvcc
간혹 install 한 버전과 맞지 않는 경우가 있습니다. 위 경우는 시스템에 이미 설치된 nvcc 를 실행하기 때문인데요. 다음과 같은 출력이 나옵니다.
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
nvcc 의 바이너리가 따로 존재하는지 확인하기 위해 다음과 같은 명령어를 사용해봅시다.
which nvcc
/usr/bin/nvcc
이 경우 경로를 바꾸어서 실행시켜주면 됩니다.
alias nvcc="/usr/local/cuda/bin/nvcc"
저의 경우 cuda-12.0 을 설치했기 때문에 다음과 같은 출력을 볼 수 있습니다. 성공적으로 출력되네요
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Mon_Oct_24_19:12:58_PDT_2022
Cuda compilation tools, release 12.0, V12.0.76
Build cuda_12.0.r12.0/compiler.31968024_0
3. nvidia-smi (NVIDIA System Managment Interface) 실행
nvidia-smi
"nvidia-smi has failed because it couldn't communicate with the nvidia driver. make sure that the latest nvidia driver is installed and running."
이 경우는 설치된 cuda util 이 load 되지 않았을 때 발생합니다. 이 경우 시스템을 reboot 하고 실행시키면 됩니다.
nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.13 Driver Version: 525.60.13 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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 ... On | 00000000:01:00.0 Off | N/A |
| 31% 29C P8 26W / 250W | 5MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce ... On | 00000000:02:00.0 Off | N/A |
| 29% 23C P8 28W / 250W | 5MiB / 11264MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1176 G /usr/lib/xorg/Xorg 4MiB |
| 1 N/A N/A 1176 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------+
글을 마치며
최근 딥러닝 학습을 사용하는 개발자가 늘어나면서 대부분 NVIDIA GPU 를 사용합니다. Pytorch, Tensorflow 등의 프레임워크를 install 하기 위해서는 GPU를 사용할 수 있는 CUDA driver API 그리고 runtime API를 필수적으로 진행해야 합니다. 위 내용을 진행하면서 에러를 겪으시거나 궁금한 점이 있으시면 댓글 부탁드립니다.
참고문헌
CUDA Toolkit 11.6 Downloads
Resources CUDA Documentation/Release NotesMacOS Tools Training Sample Code Forums Archive of Previous CUDA Releases FAQ Open Source PackagesSubmit a BugTarball and Zip Archive Deliverables
developer.nvidia.com