Ubuntu18.04 CUDA9.0 cuDNN7.1.3 TensorFlow1.8 安裝總結

Ubuntu18.04 CUDA9.0 cuDNN7.1.3 TensorFlow1.8 安裝總結

Ubuntu18.04發行已經有一段時間了,正好最近Tensorflow也釋出了1.8版本,於是決定兩個一起裝上,以下是安裝總結,大致可

以分為5個步驟

  1. 確認當前軟體和硬體環境、版本
  2. 更新顯示卡驅動,軟體版本準備
  3. CUDA 9.0 ToolKit安裝
  4. cuDNN7.1.3 for CUDA9.0安裝
  5. TensorFlow GPU 安裝
  6. Test it!

1.確認硬體軟體環境、版本

系統版本,Ubuntu18.04 自然沒什麼好說的, 使用指令sudo lsb_release -a ,得到以下輸出結果

GCC和G 版本,18.04的ubuntu預設的是7.0,同時也有附帶安裝6.0,不過我們這次安裝需要更低版本的GCC以及G

gcc --version  #檢視GCC版本號 gcc (Ubuntu 7.0 -4ubuntu8) 7.0
g   --version  #檢視G  版本號 g   (Ubuntu 7.0-4ubuntu8) 7.0

我選擇採用的是4.8版本gcc和g ,後面給出降級方法。

英偉達顯示卡驅動版本, 使用nvidia-smi 可以得到相關資訊,我使用的是GTX1080顯示卡,驅動已經更新到390.48版本。

表頭釋義: 
Fan:顯示風扇轉速,數值在0到100%之間,是計算機的期望轉速,如果計算機不是通過風扇冷卻或者風扇壞了,顯示出來就是N/A; 
Temp:顯示卡內部的溫度,單位是攝氏度;
Perf:表徵效能狀態,從P0到P12,P0表示最大效能,P12表示狀態最小效能;
Pwr:能耗表示; 
Bus-Id:涉及GPU匯流排的相關資訊; 
Disp.A:是Display Active的意思,表示GPU的顯示是否初始化; 
Memory Usage:視訊記憶體的使用率; 
Volatile GPU-Util:浮動的GPU利用率;
Compute M:計算模式;

Python 版本, 使用python -V 檢視相關資訊。


2.更新顯示卡驅動,軟體版本準備

主要是更新顯示卡驅動,以及降級預設GCC/G 版本.

如果是已經裝過NVIDIA顯示卡驅動,通過以下指令升級

sudo add-apt-repository ppa:graphics-drivers/ppa 
sudo apt update 
sudo apt install nvidia-390

如果有NVIDIA顯示卡,但是沒有安裝過顯示卡相應驅動,CUDA Toolkit中會有整合的384版本驅動,需要關閉圖形介面到指令行介面

安裝,相關方法請上網查詢。

GCC降級

sudo apt-get install gcc-4.8 
sudo apt-get install g  -4.8

裝完後進入到/usr/bin目錄下 

ls -l gcc*

會顯示以下結果

lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.0

發現gcc連結到gcc-7.0, 需要將它改為連結到gcc-4.8,方法如下:

sudo mv gcc gcc.bak #備份 
sudo ln -s gcc-4.8 gcc #重新連結

同理,對g 也做同樣的修改:

ls -l g  * 
lrwxrwxrwx 1 root root 7th May 15:17 g   -> g  -7.0

需要將g 連結改為g -4.8:

sudo mv g   g  .bak 
sudo ln -s g  -4.8 g  

再檢視gcc和g 版本號:

gcc -v 
g   -v

均顯示gcc version 4.8 ,說明gcc 48.8安裝成功。


3.CUDA ToolKit 安裝

CUDA 到CUDA9.0 下載頁面下載runfile(最近NVIDIA官網被停)安裝,Tensorflow官網給的暫時還是9.0版本,新版本可以嘗試一下

穩妥起見,這裡選擇9.0。

下載9.0安裝包和2個補丁包之後,

~/下載 資料夾應該有 以下三個檔案

ls |grep cuda_9.0
cuda_9.0.176.1_linux.run 
cuda_9.0.176.2_linux.run 
cuda_9.0.176_384.81_linux.run

在確認GCC版本在4.8後, 直接輸入以下指令

sh cuda_9.0.176_384.81_linux.run --override

執行,如果有安裝了顯示卡驅動的,注意在提問是否安裝顯示卡驅動時選擇no,其他 選擇預設路徑或者yes即可。 如果沒有安裝顯示卡

驅動,需要退出圖形介面,到命令列終端安裝,這裡不再贅述。

安裝完成後,可能會得到提示,CUDA 安裝不完整,這是因為顯示卡驅動沒有安裝,這裡忽略掉。同樣的方法安裝兩個補丁包.

sh cuda_9.0.176.1_linux.run 
sh cuda_9.0.176.2_linux.run

安裝完畢之後,將以下兩條加入.bashrc檔案中

echo 'export PATH=/usr/local/cuda-9.0/bin${PATH: :${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc

4.cuDNN7.1.3安裝

cuDNN 到 cuDNN 官網頁面下載即可,這裡注意要選擇對應CUDA9.0的軟體包, 下載完畢後,切到預設的Downloads資料夾,

可以看到 cudnn-9.0-linux-x64-v7.1.tgz 壓縮包 

先解壓,後複製到CUDA安裝資料夾裡面

tar zxvf cudnn-9.0-linux-x64-v7.1.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 /usr/local/cuda/lib64/libcudnn*

完成後,可以到~/NVIDIA_CUDA-9.0_Samples/資料夾下測試CUDA功能完整性

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery 
sudo make 
./deviceQuery


5.Tensorflow 安裝

這裡選擇的是在本機上安裝Tensorflow,其他安裝方式可以參照官網介紹。

pip install tensorflow-gpu

預設安裝最新版本1.8,如果要安裝教老版本, 上述指令後面加上==$版本號 即可。


6.驗證測試

在python3 中輸入以下程式碼

# -*- coding: utf-8 -*-
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
a = tf.constant([1.0,2.0],shape=[2],name='a')
b = tf.constant([2.0,3.0],shape=[2],name='b')
result = a b
print(result)
print(a.graph is tf.get_default_graph)
sess = tf.Session()
print(sess.run(result))
print(result)
g = tf.Graph()
with g.device('gpu:0'):
result = a b 
print(sess.run(result))

輸出結果應該是 :

並且附帶上GPU相關資訊。

至此安裝過程全部完成。