Ubuntu(16.04)에 Tensorflow-gpu 설치
대표적인 딥러닝 프레임워크 중 하나인 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 다운로드로 넘어가면 된다.
그래픽 드라이버 버전이 낮거나 높을 경우, CUDA 설치가 안 되는 경우도 있다. 또한, CUDA 설치파일에는 최소 요구사항의 그래픽 드라이버가 포함되어 있다. 따라서 기존 드라이버를 지우고 설치하는 것이 안전한 방법이다.
sudo apt-get purge nvidia-*
이미 요구사항 이상의 드라이버를 설치한 상태에서 CUDA를 설치할 경우, 그래픽 드라이버가 최신이라면 downgrade할 수도 있다.
현재 기준(2018.07.05) Base download와 Patch 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
재부팅을 하고 나면 nvidia-smi 명령어로 384버전의 드라이버가 설치된 것을 확인할 수 있다. (Downgrade가 된 경우이다.)
같은 방식으로 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로 편집기를 빠져나올 수 있다.
source ~/.bashrc # 수정한 내용 적용
nvcc --version # CUDA 확인
cuDNN 7.0.5 설치
Download를 클릭하면 NVIDA 로그인이 필요하다.
로그인 후, 동의를 클릭하고 Archived cuDNN Releases를 선택한다.
CUDA 9.0을 위한 cuDNN 7.0.5 버전을 찾을 수 있다. cuDNN v7.0.5 Library for Linux를 다운받는다.
먼저 tar.gz 파일을 압출을 푼다.
cd Downloads
tar xvzf cudnn-9.0-linux-x64-v7.tgz
실행이 끝나면 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 # 수정한 내용 적용
cuDNN 설치가 잘 된 것을 확인할 수 있다.
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Tensorflow-gpu 1.8.0 설치
Anaconda나 Virtualenv같은 가상환경에서 tensorflow를 설치한다. (여기서는 pipenv를 사용했다.)
pip install tensorflow-gpu==1.8.0
pip list 또는 직접 tensorflow를 실행해서 설치가 되었는지를 확인할 수 있다.