Ubuntu(16.04)에 Tensorflow-gpu 설치

게시일 : 2018년 07월 05일    
# Ubuntu # Tensorflow # DeepLearning

대표적인 딥러닝 프레임워크 중 하나인 tensorflow-gpu 1.8.0 버전을 설치한다.

설치환경

OS Ubuntu 16.04 GPU NVIDIA GTX 1080 TI
PYTHON 3.6 가상환경 pipenv

CUDA & cuDNN

tensorflow에는 CPU 버전 (tensorflow) 과 GPU 버전 (tensorflow-gpu) 이 존재한다.

Tensorflow-gpu 버전을 사용하기 위해서는 CUDA와 cuDNN 설치가 필요하다.

TF 버전마다 설치해야 할 버전이 다르다. 1.5 버전부터는 CUDA 9와 cuDNN 7이 필요하다.

TF 버전 CUDA cuDNN
TF 1.8 9 7
~ 9 7
TF 1.5 9 7
TF 1.4 8 6

또한, 그래픽 카드마다 설치가 가능한 CUDA와 cuDNN 버전이 다를 수 있으므로 본인 그래픽카드를 확인하고

그에 맞는 TF버전을 확인 후 설치해야 한다.

CUDA 9.0 설치

CUDA 설치 시 필요한 최소 그래픽 Driver 버전이 존재한다.

CUDA 버전 Driver
CUDA 9.2 396.xx
CUDA 9.1 387.xx
CUDA 9.0 384.xx
CUDA 8.0 (GA2) 375.xx
CUDA 8.0 367.4x
CUDA 7.5 352.xx
CUDA 7.0 346.xx

nvidia-smi 명령어로 현재 설치된 그래픽 드라이버를 확인해본다. ( 390버전의 드라이버가 설치되어 있다. )

실행이 안되는 경우, 바로 CUDA 다운로드로 넘어가면 된다.

install_tf_1

그래픽 드라이버 버전이 낮거나 높을 경우, CUDA 설치가 안 되는 경우도 있다. 또한, CUDA 설치파일에는 최소 요구사항의 그래픽 드라이버가 포함되어 있다. 따라서 기존 드라이버를 지우고 설치하는 것이 안전한 방법이다.

sudo apt-get purge nvidia-*

이미 요구사항 이상의 드라이버를 설치한 상태에서 CUDA를 설치할 경우, 그래픽 드라이버가 최신이라면 downgrade할 수도 있다.

CUDA 다운로드 링크

현재 기준(2018.07.05) Base download와 Patch 3개가 존재한다.

install_tf_3

먼저 CUDA BASE 버전을 설치한다.

cd Downloads
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
# apt-key 부분은 위 코드 실행 후 나오는 코드를 복사해 실행하면 된다.
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

install_tf_2

재부팅을 하고 나면 nvidia-smi 명령어로 384버전의 드라이버가 설치된 것을 확인할 수 있다. (Downgrade가 된 경우이다.)

install_tf_4

같은 방식으로 CUDA 업그레이드를 진행한다. 단, install cuda가 아닌 upgrade cuda를 입력해야 한다.

cd Downloads
# Patch 1
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update_1.0-1_amd64.deb
sudo apt-get update 
sudo apt-get upgrade cuda
# Patch 2
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
sudo apt-get update 
sudo apt-get upgrade cuda
# Patch 3
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb
sudo apt-get update 
sudo apt-get upgrade cuda
# Patch 4
sudo dpkg -i cuda-repo-ubuntu1604-9-0-176-local-patch-4_1.0-1_amd64.deb
sudo apt-get update 
sudo apt-get upgrade cuda

그 다음 PATH 설정을 .bashrc에 추가해야 한다.

sudo nano ~/.bashrc  실행하면 텍스트 편집화면이 나온다.
export PATH=/usr/local/cuda-9.0/bin:$PATH  추가한다.

Ctrl+O를 누르고 enter를 입력(이름을 바꾸지 않고 저장) 후 Ctrl+X로 편집기를 빠져나올 수 있다.

install_tf_5

source ~/.bashrc # 수정한 내용 적용
nvcc --version # CUDA 확인

install_tf_6

cuDNN 7.0.5 설치

cuDNN 다운로드 링크

Download를 클릭하면 NVIDA 로그인이 필요하다.

로그인 후, 동의를 클릭하고 Archived cuDNN Releases를 선택한다.

install_tf_7

CUDA 9.0을 위한 cuDNN 7.0.5 버전을 찾을 수 있다. cuDNN v7.0.5 Library for Linux를 다운받는다.

install_tf_8

먼저 tar.gz 파일을 압출을 푼다.

cd Downloads
tar xvzf cudnn-9.0-linux-x64-v7.tgz

install_tf_9

실행이 끝나면 Downloads에 cuda라는 폴더가 생긴다. Downloads 폴더 위치에서 다음 명령어를 실행한다.

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

cuDNN도 PATH 설정을 .bashrc에 추가해야 한다. (export PATH 아래에 추가하였다.)

sudo nano ~/.bashrc  실행하면 텍스트 편집화면이 나온다.
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH  추가
# Ctrl+O - save, Ctrl+X - exit
source ~/.bashrc # 수정한 내용 적용

install_tf_10

cuDNN 설치가 잘 된 것을 확인할 수 있다.

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

install_tf_11

Tensorflow-gpu 1.8.0 설치

Anaconda나 Virtualenv같은 가상환경에서 tensorflow를 설치한다. (여기서는 pipenv를 사용했다.)

pip install tensorflow-gpu==1.8.0

pip list 또는 직접 tensorflow를 실행해서 설치가 되었는지를 확인할 수 있다.

install_tf_12

install_tf_13