1. 程式人生 > >Ubuntu 16.04 GTX950M + cuda9.0 + cuDNN7.0 + TensorFlow 1.5 / 1.8 安裝記錄

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安裝正常
這裡寫圖片描述