Ubuntu 16.04에 Cuda, Nvidia driver, cudnn 설치


Ubuntu 16.04 운영체제, Nvidia GPU(TITAN Xp), Anaconda Python 3.5 버전을 사용하여 진행하였습니다.

설치할 항목은 다음과 같습니다.

  • Nvidia 그래픽 드라이버
  • CUDA Toolkit 8.0
  • CuDNN v5.1
  • NVIDIA CUDA Profiler Tools Interface

GPU에 맞는 cuda, cudnn버전 및 Nvidia Driver 버전은 다를 수 있습니다.

http://nblog.syszone.co.kr/archives/9625

위 링크에 잘 정리되어있는 글이 있습니다. 확인 후 맞는 버전으로 진행하시면 됩니다.


Nvidia 그래픽 드라이버 설치


PC가 그래픽카드를 인식하게 하기 위해 그래픽 드라이버를 설치해야 합니다.

터미널에 다음 명령어를 입력합니다. (367.4x 버전 이상의 최신 버전으로 설치)

$ sudo add-apt-repository ppa:graphics-driveers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-390


설치가 완료되면 PC를 재부팅합니다.

$ sudo reboot


재부팅 후 터미널에 nvidia-smi를 입력 시 다음과 같은 결과가 나오면 인식된 GPU를 확인할 수 있습니다.

$ nvidia-smi
Wed Sep 26 17:11:42 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.59                 Driver Version: 390.59                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN Xp COLLEC...  Off  | 00000000:01:00.0  On |                  N/A |
| 23%   44C    P0    65W / 250W |    280MiB / 12188MiB |     13%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1013      G   /usr/lib/xorg/Xorg                           158MiB |
|    0      2308      G   compiz                                       121MiB |
+-----------------------------------------------------------------------------+


CUDA Toolkit 8.0 설치


공식 다운로드 페이지(v8.0)에서 PC 운영체제에 맞는 파일을 다운로드합니다.

저는 Ubuntu 16.04를 사용했기 때문에 Ubuntu 16.04의 runfile(local)을 다운로드 했습니다.

cuda install image


다운로드 완료 후 터미널에서 다음 명령어를 실행합니다.

$ sudo sh cuda_8.0.61_375.26_linux.run


입력 시 나오는 라이센스 문구는 Ctrl+c를 입력하여 한번에 넘길 수 있습니다. 다음으로 나오는 질문은 다음과 같이 답하면 됩니다. 이 때, cuda toolkit을 설치한 위치를 반드시 기억해두어야 합니다.

Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?  
(y)es/(n)o/(q)uit: y

Enter Toolkit Location  
 [ default is /usr/local/cuda-8.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?  
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?  
(y)es/(n)o/(q)uit: n

Enter CUDA Samples Location
 [ default is /home/your_id ]: 


설치가 완료되면 다음과 같이 환경변수 설정을 합니다. 이 때, 입력하는 CUDA 경로는 설치 시 입력했던 경로와 동일해야 합니다.

$ echo -e "\n## CUDA and cuDNN paths"  >> ~/.bashrc
$ echo 'export PATH=/usr/local/cuda-8.0/bin:${PATH}' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc


설정 후 터미널에 $ ~/.bashrc를 입력하여 마지막 부분에 다음 내용이 추가되었는지 확인합니다.

## CUDA and cuDNN paths 
export PATH = /usr/local/cuda-8.0/bin : $ { PATH } 
export LD_LIBRARY_PATH = /usr/local/cuda-8.0/lib64 : $ { LD_LIBRARY_PATH }


올바르게 추가되었으면 변경된 환경변수를 적용하기 위해 다음 명령어를 입력합니다.

$ source ~/.bashrc


CUDA가 설치되었는지 확인하기 위해 다음 명령어를 입력합니다.

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61


CUDA가 설치된 경로를 다음 명령어로 다시 한 번 확인합니다.

$ which nvcc
/usr/local/cuda-8.0/bin/nvcc


cuDNN v5.1 설치


공식 다운로드 페이지에서 회원가입 후 cuDNN을 다운로드 가능합니다. 여러 가지 파일들 중 cuDNN v5.1 for CUDA 8.0의 cuDNN v5.1 Library for Linux를 선택하여 다운로드 받습니다. (파일명: cudnn-8.0-linux-x64-v5.1.tgz)

  • cuDNN버전은 GPU에 맞는 버전 선택이 필요합니다!

cudnn install image


다운로드 받은 디렉토리에서 다음 명령어로 받은 파일의 압축을 풉니다.

$ tar xzvf cudnn-8.0-linux-x64-v5.1.tgz


$ which nvcc로 폴더 위치 확인 후 해당 폴더에 압축 해제한 파일을 복사하고 권한을 변경합니다.

$ which nvcc
/usr/local/cuda-8.0/bin/nvcc

$ sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64/
$ sudo cp cuda/include/* /usr/local/cuda-8.0/include/

$ sudo chmod a+r /usr/local/cuda-8.0/lib64/libcudnn*
$ sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h


완료 후 다음 명령어를 입력하여 비슷한 결과가 나오면 설치가 완료된 것입니다.

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  
#define CUDNN_MAJOR      5
#define CUDNN_MINOR      1
#define CUDNN_PATCHLEVEL 10
––
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"
...

NVIDIA CUDA Profiler Tools Interface

마지막으로 다음 명령어를 입력하여 필요한 패키지를 설치합니다.

$ sudo apt-get install libcupti-dev


참고 사이트

  • http://qiita.com/JeJeNeNo/items/05e148a325192004e2cd
  • http://stackoverflow.com/questions/31326015/how-to-verify-cudnn-installation
  • http://ejklike.github.io/2017/03/06/install-tensorflow1.0-on-ubuntu16.04-1.html
Share :

Comments