본 포스트에서는 사용한 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 |