Ubuntu 16.04 GTX950M + cuda9.0 + cuDNN7.0 + TensorFlow 1.5 / 1.8 安裝記錄
一、安裝NVIDIA驅動
關閉x-server,ctrl + alt + F1 進入終端介面,登陸
sudo service lightdm stop
(X server將會被關閉。可以使用ctrl + alt + F7 檢查一下)禁用 nouveau 驅動
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
輸入
blacklist nouveau
options nouveau modset=0
儲存退出,執行
sudo update-initramfs -u
禁用結束。重啟電腦。驗證驅動是否禁用成功,如果沒有內容,則禁用成功。
sudo lspci | grep nouveau
Nvidia驅動
先下載顯示卡驅動NVIDIA-Linux-x86_64-*..run檔案
ctrl + alt + F1 進入終端介面,登陸
sudo service lightdm stop
(X server將會被關閉。可以使用ctrl + alt + F7 檢查一下)
sudo chmod a+x NVIDIA-Linux-x86_64-**.**.run
sudo sh ./NVIDIA-Linux-x86_64-**.**.run –no-opengl-files
sudo rm /etc/X11/xorg. conf
sudo reboot
檢測配置成功
nvidia-smi
如果nvidia-smi執行報錯,什麼 as root,好像是因為Ubuntu本身的問題,進BIOS,找到security boot,關閉,可解決大部分問題
二、安裝cuda
目前大部分教程是安裝的cuda8.0+cuDNN6.0 配置,一開始的時候也是按這個版本的教程來的,期間還下錯過版本的重新下載。不過Tensorflow1.5應該是支援9.0的,我換源之後pip安裝的tensorflow是1.5版本的,之前配好了cuda8.0,這個提示要用9.0,很無奈,又下載了一遍。
Cuda9.0下載介面:https://developer.nvidia.com/cuda-release-candidate-download
下載好之後按執行命令
sudo sh cuda_9.0.176_384.81_linux.run
進行安裝,要注意幾個選項,他會有一個選項問你是否需要安裝NVIDIA的驅動,我們之前已經安裝好了,所以這一步選擇NO,(我猜在這裡直接裝驅動的話,還是會GG,因為那個opengl)
一定選擇NO 要不然之前的驅動白裝了
這個介面是讓你去讀一些協議啥的,而且很長,ctrl+c可以直接跳過
安裝完畢後,再宣告一下環境變數,並將其寫入到 ~/.bashrc 的尾部:
# 個人推薦的方法
# the path for cuda
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
或者
export PATH=/usr/local/cuda-9.0/bin\${PATH:+:\${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}
- gcc g++ 版本問題
檢視gcc版本資訊:gcc –v
檢視g++版本資訊:g++ –v
(待查證)由於cuda8.0不支援gcc 5.0以上的編譯器,因此需要降級,把編譯器版本降到4.9:
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
檢查是否裝好:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
# 編譯 可能需要sudo
make
# 執行
./deviceQuery
最後顯示Result = pass 是校驗通過的意思
cd /usr/local/cuda/samples/1_Utilities/bandwidthTest
make
./bandwidthTest
來測試系統和CUDA組建的通訊無誤,正常結果輸出如下:
三、安裝cuDNN
cuDNN全稱 CUDA Deep Neural Network library,是NVIDIA專門針對深度神經網路設計的一套GPU計算加速庫,被廣泛用於各種深度學習框架,例如Caffe, TensorFlow, Theano, Torch, CNTK等。
首先需要下載cuDNN,直接從Nvidia官方下載連結選擇一個版本,對
CUDA8.0支援較好的是v6.0,我安裝的是CUDA9.0,所以選擇安裝的是V7.0.5版本的CUDNN
tar -zxvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
這個的安裝還是比較簡單的,下載到包之後解壓,然後複製一下就行
四、安裝TensorFlow
可以選擇換源,可以將pip源指向阿里雲的源映象
http://mirrors.aliyun.com/help/pypi
具體新增一個 ~/.config/pip/pip.conf 檔案,
cd ~/.config/
mkdir pip
cd pip
vim pip.conf
設定為:
[global]
trusted-host = mirrors.aliyun.com
index-url = http://mirrors.aliyun.com/pypi/simple
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
$ sudo pip install tensorflow # Python 2.7; CPU support (no GPU support)
$ sudo pip3 install tensorflow # Python 3.n; CPU support (no GPU support)
$ sudo pip install tensorflow-gpu # Python 2.7; GPU support
$ sudo pip3 install tensorflow-gpu # Python 3.n; GPU support
配好CUDA環境之後,安裝tensorflow挺簡單簡單,不過原始碼github安裝,自己能夠找到自己的目錄資料夾,但是pip安裝直接找不到資料夾。
- 測試是否安裝成功
[email protected] ~/.config/pip python
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.8.0'
>>> tf.__path__
['/usr/local/lib/python2.7/dist-packages/tensorflow']
[email protected]hanger ~/.config/pip python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.8.0'
>>> tf.__path__
['/usr/local/lib/python3.5/dist-packages/tensorflow']
>>>
原始碼安裝很不好用!
(1) 安裝Tensorflow依賴的其它工具包
sudo apt-get install python-numpy swigpython-dev python-wheel
(2) 下載最新的Tensorflow原始碼
sudo apt-get install git
git clone https://github.com/tensorflow/tensorflow
(3) 執行configure指令碼配置環境資訊 ./configure
校驗Tensorflow安裝
啟用環境(source/tensorflow/bin/active),然後執行
$ python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果輸出 Hello, TensorFlow!
說明TF安裝正常