본 포스트에서는 사용한 PC는 엔비디아 GPU 1080을 사용 한다. https://developer.nvidia.com/cuda-downloads linux -> x86_64 -> Ubuntu -> 16.04 -> deb(network) 파일 다운로드후 아래의 명령어 수행 Network local version 본설치 패치 적용 https://developer.nvidia.com/cudnn 아래명령어를 실행한다. 추가적인 dependencies도 설치한다. 환경변수 설정 버전확인 python2의 경우 python3.5의 경우 Tensorflow-GPU 설치 타겟 URL은 홈페이지에서 참조 한다. 설치 위치 최종 버전 확인 그래픽 카드별 성능차이 비교는 이전포스트를 참조한다. 잘못 설치 했을 때 삭제 방법이다.TensorFlow GPU 버전 우분투 16.04에 설치 하기
Tensorflow
를 Ubuntu 16.04에 설치하는 법을 다룬다.
정확한 컴퓨터 모델은 보스몬스터 DX3 6708KSW
이다.TensorFlow 1.9
에 맞춰서 CUDA 9.0
과 cuDNN 7.1
로 업그레이드 설치 했다.1. CUDA 라이브러리 설치
2018.07.31일
기준 CUDA 9.0까지 지원하지만 TF 1.9에서는 9.0을 설치하라고하니 9.0으로 다운 받는다.
9.2을 설치해보니 library loading이 잘 되지 않았다.
패치를 따로 안해줘도 된다.
정확히 아래처럼 cuda-9-0
으로 줘야 제대로 설치된다. 그냥 cuda
하면 9.2
최신 버전으로 설치 될 수도 있다.sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-9-0
파일을 다운받아서 하는 방법이다.
patch 파일도 cuBLAS관련해서 세개나 있어서 각각 업데이트 해줘야 한다.#본 파일
cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
#패치 파일
cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb
cuda-repo-ubuntu1604-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
cuda-repo-ubuntu1604-9-0-local-cublas-performance-update_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
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-9-0
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-9-0
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-9-0
2. cuDNN 및 환경변수 설정
cuDNN v7.1.4 (May 16, 2018) for CUDA 8.0
으로 다운 받는다.tar xvfz cudnn-9.0-linux-x64-v7.1.tgz
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*
$ sudo apt-get install libcupti-dev
LD_LIBRARY_PATH
와 CUDA_HOME
을 설정한다.vi ~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
pip로 바로 설치
# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev
# Ubuntu/Linux 64-bit
$ sudo apt-get install python3-pip python3-dev
$ pip3 install tensorflow-gpu
업그레이드 방법 (추후에 새로운 버전이 나왔 을때)
https://www.tensorflow.org/get_started/os_setupsudo pip3 install --upgrade $TF_BINARY_URL
실행 결과
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
>>> hello = tf.constant("Hello, tensorFlow!")
>>> sess = tf.Session()
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.797
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.53GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
>>> print(sess.run(hello))
b'Hello, tensorFlow!'
설치 경로 찾는 command$ python3 -c 'import os; import inspect; import tensorflow; print(os.path.dirname(inspect.getfile(tensorflow)))'
/home/jemin/.local/lib/python3.5/site-packages/tensorflow
jaynux@jaynux-desktop:~/tf_examples$ python3.5 -c 'import tensorflow as tf; print(tf.__version__)'
1.9.0
CUDA 삭제
--auto-remove
옵션을 통해서 의존성 파일들을 모두 제거 한다.# 간단한 방법
sudo apt-get remove --auto-remove nvidia-cuda-toolkit
# 좀 더 깨끗하게
sudo apt-get --purge remove 'cuda*'
sudo apt-get autoremove --purge 'cuda*'
sudo rm -rf /usr/local/cuda-[your version]
sudo rm -rf /usr/local/cuda
'AI > TensorFlow, PyTorch, Keras, Scikit' 카테고리의 다른 글
Jupyter에 conda env. 추가하기 (0) | 2018.08.05 |
---|---|
TensorFlow를 공용 GPU에서 사용 할 때 메모리 절약 방법 (0) | 2018.08.02 |
Pycharm으로 TensorFlow 원격 빌드하기 (7) | 2018.04.25 |
학습 모델의 재사용 (Transfer Learning) (0) | 2017.12.09 |
TensorFlow 모델을 저장하고 불러오기 (save and restore) (3) | 2017.12.09 |