CUDA 설치 우분투 환경


CUDA 설치 우분투 환경

이번 글에서는 NVIDIA CUDA 설치하는 방법에 대해서 설명 드리도록 하겠습니다.
어떤 프레임워크를 CUDA를 사용하실지에 따라 설치해야 할 버전이 달라질 수 있는데, 우분투(Ubuntu)환경에서 최신 텐서플로우(Tensorflow) 버전 1.14.0에서 요구되는 CUDA Toolkit의 버전 9.0 또는 10.0 버전을 cuDNN 라이브러리와 함께 설치하는 방법에 대해 설명드리겠습니다.

우분투 환경에서 패키지 리스트를 추가하여 설치하는 방법에 대해서 설명 드리며, 다른 CUDA 버전을 설치하시더라도 설치 방법은 크게 차이가 없습니다.

CUDA 설치 우분투 환경

CUDA 설치 우분투 환경

환경은 우분투 16.04 과 18.04 버전을 기준으로 설명드립니다. 먼저 NVIDIA 드라이버가 설치되었는지 확인하기 위해서 아래의 명령어를 실행해 주시기 바랍니다.

$ nvidia-smi
Sun Mar 11 01:46:19 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.30                 Driver Version: 390.30                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 750 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 38%   38C    P8     1W /  38W |     43MiB /  2000MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1373      G   /usr/lib/xorg/Xorg                            40MiB |
+-----------------------------------------------------------------------------+

GTX 750Ti 모델로 NVIDIA 드라이버 버전은 390.30을 사용하는 것을 확인 할 수 있습니다.

위와 비슷한 내용의 드라이버 정보가 나타나지 않는다면, CUDA를 설치하기 전에 먼저 NVIDIA 드라이버가 올바르게 설치되었는지 확인해 주시기 바랍니다. 드라이버 설치 방법은 아래의 글을 참고하실 수 있습니다.

우분투에서 NVIDIA 드라이버 설치 방법

그리고 CUDA를 설치 하기 이전에, 설치하고자 하는 CUDA 버전이 현재 GPU의 Compute Capability(계산 능력)을 지원하는지 확인해 주셔야 합니다. Compute Capability는 아래의 페이지에서 확인 하실 수 있습니다.

https://developer.nvidia.com/cuda-gpus

https://en.wikipedia.org/wiki/CUDA

Compute Capability에 따라 설치 할 수 있는 CUDA 버전은 아래의 내용을 확인해 주시면 됩니다.

CUDACompute capabilityArchitecture
6.5Last version with support for compute capability 1.x(Tesla)
7.5support for compute capability 2.0 – 5.x(Fermi, Kepler, Maxwell)
8.0support for compute capability 2.0 – 6.x(Fermi, Kepler, Maxwell, Pascal), last version with support for Compute Capability 2.x (Fermi)
9.0 – 9.2support for compute capability 3.0 – 7.2(Kepler, Maxwell, Pascal, Volta)
10.0 – 10.1support for compute capability 3.0 – 7.5(Kepler, Maxwell, Pascal, Volta, Turing)

예를 들어 설치하고자 하고자 하는 CUDA 버전이 9.0일경우, GTX 750 Ti의 Compute capability이 5.0 이므로 CUDA 9.0이 설치 가능합니다. (CUDA 9.0은 Compute capability이 3.0 ~ 7.2 까지 지원하기 때문입니다.)

패키지 리스트 추가

현재 NVIDIA 공식 Repository에서 지원되는 배포판 종류는 우분투 16.04, 17.04, 17.10, 18.04, 18.10 등 입니다. 이 배포판에 해당되는 우분투 버전을 사용하고 계신경우, 아래의 공통 명령어로 패키지 리스트를 추가 하실 수 있습니다.

먼저 아래의 명령어로 현재 사용하고 계신, 우분투 배포판 버전을 확인합니다.

$ release="ubuntu"$(lsb_release -sr | sed -e "s/\.//g")
$ echo $release

만약 우분투 18.04 일 경우, ubuntu1804 와 같은 내용이 출력되고, 16.04일경우 ubuntu1604 내용이 출력되게 됩니다.

위의 명령어로 배포판 이름이 $release 변수에 저장되게 되고, 아래의 명령어에서 해당 Repository로 추가될 수 있도록 사용됩니다. 따라서, 꼭 위의 명령어를 실행 후 아래의 명령어로 Repository를 추가합니다.

$ sudo apt install sudo gnupg
$ sudo apt-key adv --fetch-keys "http://developer.download.nvidia.com/compute/cuda/repos/"$release"/x86_64/7fa2af80.pub"
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-cuda.list'
$ sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/'$release'/x86_64 /" > /etc/apt/sources.list.d/nvidia-machine-learning.list'
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A4B469963BF863CC
$ sudo apt update

CUDA 설치

아래의 명령어로 cuda 10.0을 설치 할 수 있습니다.

$ sudo apt-get install cuda-10-0

그리고 아래의 명령어는 cuDNN 7.x을 설치하는 명령어 입니다.

$ sudo apt-get install libcudnn7-dev

CUDA와 cuDNN 라이브러리를 설치하면 텐서플로우를 설치할 준비가 완료된 것입니다. 이어서 텐서플로우를 설치하고자 하시는 경우 아래의 글을 참고하여 설치하시면 됩니다.

GPU 지원 텐서플로우 설치 방법

버전 확인

시스템에 설치된 CUDA 및 cuDNN 버전을 확인하기 위해서는 아래의 명령어를 실행하면 됩니다.
먼저 CUDA의 버전을 확인 하기 위해서는 아래의 명령어를 실행합니다.

$ cat /usr/local/cuda/version.txt
CUDA Version 10.0.130

그리고 시스템에 설치된 cuDNN의 버전을 확인 하기 위해서는 아래의 명령어를 사용합니다. cudnn.h 헤더 파일 없이 라이브러리 파일만 존재해도 실행에는 문제가 없습니다.

$ cat /usr/include/cudnn.h | grep -E "CUDNN_MAJOR|CUDNN_MINOR|CUDNN_PATCHLEVEL"
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 5
#define CUDNN_PATCHLEVEL 1
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

$ sudo find / -name libcudnn*.*
/usr/lib/x86_64-linux-gnu/libcudnn.so.7
/usr/lib/x86_64-linux-gnu/libcudnn.so.7.5.1
/var/lib/dpkg/info/libcudnn7.list
/var/lib/dpkg/info/libcudnn7.md5sums
/var/lib/dpkg/info/libcudnn7.triggers
/var/lib/dpkg/info/libcudnn7.shlibs

CUDA 및 cuDNN 등의 라이브러리는 GPU에서 모델을 학습하고 추론하는데 가속 기능을 사용할 수 있습니다. 이 외에도 딥러닝 모델에서 추론하기 위해서 NVIDIA에서 TensorRT라는 최적화 라이브리 또한 함께 제공됩니다. TensorRT와 관련해서는 다음 글을 참고해 주시기 바랍니다.

텐서플로우에서 TensorRT 사용 방법

( 본문 인용시 출처를 밝혀 주시면 감사하겠습니다.)