반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

Tensorflow 기반 인공지능 개발을 위해 GPU 관련 도구 설치 본문

AI/Tensorflow

Tensorflow 기반 인공지능 개발을 위해 GPU 관련 도구 설치

현무랑 니니 2020. 2. 12. 12:44
반응형

1.        GPU 관련 설치

1.1.      NVIDIA Graphics Driver 설치

그래픽 카드가 실행할 수 있는 최신 드라이버 버전을 확인 후 다운로드하여 설치한다.

사용 가능한 드라이버에 따라 각 그래픽 카드마다 명령이 다르며 아래와 같은 명령으로 설치할 수 있다.

$ sudo apt-get install nvidia-XYXYX

설치가 완료되면 컴퓨터를 반듯이 재 부팅해야 한다.

시스템이 재개 된 후 드라이버가 올바르게 설치되었는지 확인할 수 있다.

$ nvidia-smi

1.2.      CUDA 도구 설치

CUDA 도구 및 호환 드라이버 버전은 아래 표와 같다.

CUDA Toolkit

Linux x86_64 Driver Version

Windows x86_64 Driver Version

CUDA 10.2.89

>= 440.33

>= 441.22

CUDA 10.1 (10.1.105 general release, and updates)

>= 418.39

>= 418.96

CUDA 10.0.130

>= 410.48

>= 411.31

CUDA 9.2 (9.2.148 Update 1)

>= 396.37

>= 398.26

CUDA 9.2 (9.2.88)

>= 396.26

>= 397.44

CUDA 9.1 (9.1.85)

>= 390.46

>= 391.29

CUDA 9.0 (9.0.76)

>= 384.81

>= 385.54

CUDA 8.0 (8.0.61 GA2)

>= 375.26

>= 376.51

CUDA 8.0 (8.0.44)

>= 367.48

>= 369.30

CUDA 7.5 (7.5.16)

>= 352.31

>= 353.66

AI 서버의 드라이버 버전이 440.31이므로 CUDA 도구는 10.2.89 버전 이상 설치가 가능하다.

하지만 Tensorflow 1.4 이하 이전 버전 사용이 필요한 경우 Tensorflow가 지원하는 CUDA 버전에 제한이 있어 CUDA 도구는 10.0.130 버전을 설치한다.

CUDA 도구 설치는 엔비디아의 아래 URL과 그림에서 설치 플랫폼에 따라 설치 방법이 다양하다.

64비트 컴퓨터에 우분투 18.04 버전 상에서 deb 패키지를 받은 후 설치하는 방법을 기술한다.

# deb 패키지 다운로드

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

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

$ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb

# 다운로드한 패키지 설치

$ sudo dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64.deb

$ sudo apt-key add /var/cuda-repo-ubuntu1804-10-0/7fa2af80.pub

$ sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub

$ sudo apt-get update

$ sudo apt-get install cuda

1.3.      cuDNN 설치

cuDNN 라이브러리는 NVIDIA 개발자 프로그램 멤버로 가입하여야 받을 수 있다.

아래 URL 접속 후 가입 후 로그인을 한다.

URL

https://developer.nvidia.com/rdp/cudnn-download

 

 

소프트웨어 라이선스를 동의하고 CUDA 10.0 버전용 cuDNN 7.6.5를 받는다.

cuDNN Developer Library for Ubuntu18.04 (Deb)

cuDNN 7.6.5 debian 파일을 설치한다.

$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.0_amd64.deb

선택적으로 예제 코드와 사용자 안내서는 아래와 같이 설치한다.

$ sudo dkpg –I libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.deb

설치 후 환경 변수를 추가한다.

먼저 편집기로 ~/.bashrc 파일에 CUDA 라이브러리 경로를 추가한다.

vi ~/.bashrc

export PATH=/usr/local/cuda-10.0/bin:${PATH}

export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64

cuDNN이 정상적으로 설치되었는지 확인하는 방법은 아래와 같다.

1)    예제 코드 복사

$ cp -r /usr/src/cudnn_samples_v7/ ~

설치한 예제 코드를 홈 디렉터리 아래로 복사한다.

2)    예제 코드 빌드

$ make clean && make

3)    예제 코드 실행

$ ./mnistCUDNN

 

실행 결과

cudnnGetVersion() : 7605 , CUDNN_VERSION from cudnn.h : 7605 (7.6.5)
Host compiler version : GCC 7.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms  9  Capabilities 6.1, SmClock 1708.5 Mhz, MemSize (Mb) 3018, MemClock 4004.0 Mhz, Ecc=0, boardGroupID=0
Using device 0

Testing single precision
Loading image data/one_28x28.pgm
Performing forward propagation ...
Testing cudnnGetConvolutionForwardAlgorithm ...
Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.020480 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.037856 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.044032 time requiring 57600 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 0.091136 time requiring 207360 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 0.125632 time requiring 2057744 memory
Resulting weights from Softmax:
0.0000000 0.9999399 0.0000000 0.0000000 0.0000561 0.0000000 0.0000012 0.0000017 0.0000010 0.0000000 
Loading image data/three_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 0.9999288 0.0000000 0.0000711 0.0000000 0.0000000 0.0000000 0.0000000 
Loading image data/five_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 0.9999820 0.0000154 0.0000000 0.0000012 0.0000006 

Result of classification: 1 3 5

Test passed!

Testing half precision (math in single precision)
Loading image data/one_28x28.pgm
Performing forward propagation ...
Testing cudnnGetConvolutionForwardAlgorithm ...
Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.020480 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.032320 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.041984 time requiring 28800 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 0.089088 time requiring 207360 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 0.125824 time requiring 2057744 memory
Resulting weights from Softmax:
0.0000001 1.0000000 0.0000001 0.0000000 0.0000563 0.0000001 0.0000012 0.0000017 0.0000010 0.0000001 
Loading image data/three_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000 
Loading image data/five_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006 

Result of classification: 1 3 5

Test passed!

 

반응형
Comments