Ubuntu14.04安裝Nvidia顯卡驅動+cuda8.0+cudnn5.1+tensorflow
初始環境:
系統:ubuntu14.04 LTS
顯卡:
雙顯,Intel+Nvidia gtx1050。Intel用於顯示,之前沒有使用過Nvidia這塊獨顯。
python 2.7 + python 3.4
顯卡驅動的安裝有多種方法,這裏我們採用run文件安裝。
Nvidia驅動安裝
- 首先查看並刪除已有的顯卡驅動:
sudo apt-get purge nvidia*
- 禁用自帶的 nouveau nvidia驅動 (important!)
創建一個文件 通過命令
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
並添加如下內容:
blacklist nouveau
options nouveau modeset=0
再更新一下
sudo update-initramfs -u
修改後需要重啓系統。使用命令:
lsmod | grep nouveau
確認下Nouveau是已經被你幹掉,如果終端沒有輸出則表示禁用成功。
- Nvidia官網下載驅動
輸入自己的顯卡型號後下載*.run文件。放到用戶目錄下。
- 安裝驅動
進入命令行界面:Ctrl-Alt+F1
關閉X-window
sudo service lightdm stop
給驅動run文件賦予執行權限
sudo chmod a+x NVIDIA-Linux-x86_64-****.run
安裝(注意 參數)
sudo ./NVIDIA-Linux-x86_64-****.run –no-opengl-files
–no-opengl-files 只安裝驅動文件,不安裝OpenGL文件。這個參數最重要
–no-x-check 安裝驅動時不檢查X服務
–no-nouveau-check 安裝驅動時不檢查nouveau 後面兩個參數可不加。
重新啓動X-window:
sudo service lightdm start
然後Ctrl+Alt+F7進入圖形界面
重啓
如果無法進入圖形界面,則ctrl+alt+F1進入命令行界面,將驅動刪除再重新安裝一遍。
sudo ./NVIDIA-*****.run uninstall
成功進入圖形界面後,終端運行
nvidia-sim
如果輸出顯卡信息,則表示驅動安裝成功。
cuda安裝
這裏我們採用run文件安裝方法。
- 首先,檢查自己的GPU是否是CUDA-capable。去CUDA的官網查看自己的GPU版本是否在CUDA的支持列表中
- 檢查自己的Linux版本是否支持 CUDA(Ubuntu 14.04沒問題)
- 檢查自己的系統中是否裝了gcc
在終端中輸入: $gcc –version 可以查看自己的gcc版本信息 - 檢查是否安裝了kernel header和 package development
在終端中輸入:
uname –r
在終端中輸入:
sudo apt-get install linux-headers-$(uname-r)
可以安裝對應kernel版本的kernel header和package development
以上檢查我的電腦系統都滿足要求,如果沒有滿足要求的話,可以參考cuda的官方文檔,裏面有詳細的針對每個問題的解決方案。
- 下載run file文件
cuda官網下載地址:
https://developer.nvidia.com/cuda-downloads
選擇自己相應的版本下載,大約1.4G。 - 安裝
進入命令行界面:
Ctrl-Alt+F1
關閉X-window
sudo service lightdm stop
切換到cuda runfile文件的保存路徑。給下載的runfile文件賦予執行權限
sudo chmod a+x cuda_8.0.61_375.26_linux.run
運行安裝。注意,提示是否安裝openGL files時選擇no,提示是否安裝驅動時選擇no。
sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
等待安裝完成。出現以下語句時,表示安裝結束。
Driver :Installed
Toolkit :Installed in /usr/local/cuda-8.0
Samples :Installed in /home/zlin
重啓圖形界面
sudo service lightdm start
Alt + ctrl +F7,返回到圖形化登錄界面,輸入密碼登錄。
倘若沒有遇到循環登錄的問題,基本說明cuda的安裝成功了!!!!
如果遇到循環登錄的問題,與前面驅動安裝時一樣,將驅動重新安裝一遍即可。
重啓電腦。檢查Device Node Verification
檢查路徑/dev下 有無存在名爲nvidia*(以nvidia開頭)的多個文件(device files) 如果沒有的話,可以參考官方文檔裏的指導步驟,進行添加。設置環境變量
終端中輸入
$ sudo gedit /etc/profile
在打開的文件末尾,添加以下兩行。export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64
然後重新加載環境變量
sudo source /etc/profile
- 安裝完畢後的檢查工作
a): 檢查 NVIDIA Driver是否安裝成功
終端輸入 :
$ cat /proc/driver/nvidia/version
會輸出NVIDIA Driver的版本號
b): 檢查 CUDA Toolkit是否安裝成功
終端輸入 :
$ nvcc –V
會輸出CUDA的版本信息
c): 嘗試編譯cuda提供的例子
切換到例子存放的路徑,默認路徑是
~/NVIDIA_CUDA-7.5_Samples
(即/home/xxx/ NVIDIA_CUDA-7.5_Samples
, xxx是你自己的用戶名)
然後終端輸入:$ make
如果出現錯誤的話,則會立即報錯停止,否則會開始進入編譯階段。 我的第一次運行時出現了報錯,提示的錯誤信息是系統中沒有gcc 然後在終端運行$ sudo apt-get install gcc
安裝完gcc後 再make就正常了 整個編譯的時間持續比較長,耐心等待,大概十幾分鍾是需要的。
d):運行編譯生成的二進制文件。
編譯後的二進制文件 默認存放在~/NVIDIA_CUDA-7.5_Samples/bin
中。
切換路徑 :
cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
終端輸入 :$ ./deviceQuery
看到類似如下圖片中的顯示,則代表CUDA安裝且配置成功(congratulation!!)
再檢查一下系統和CUDA-Capable device的連接情況
終端輸入 :$ ./sandwidthTest
看到類似如下圖片中的顯示,則代表成功
至此,cuda8.0安裝成功。
CUDNN安裝
下載cuDNN v5.1 Library for Linux.
https://developer.nvidia.com/cudnn
下載完cudnn5.1之後進行解壓,cd進入cudnn5.1解壓之後的include目錄,在命令行進行如下操作:
sudo cp cudnn.h /usr/local/cuda/include/ #複製頭文件
再將cd進入lib64目錄下的動態文件進行復制和鏈接:
sudo cp lib* /usr/local/cuda/lib64/ #複製動態鏈接庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #刪除原有動態文件
sudo ln -s libcudnn.so.5.0.10 libcudnn.so.5 #生成軟銜接
sudo ln -s libcudnn.so.5 libcudnn.so #生成軟鏈接
如果以後要換cuDNN的版本,照着上述步驟重裝一遍即可。
安裝tensorflow
sudo pip3 install tensorflow-gpu=1.2.1
因爲我要學習的google nmt神經機器翻譯模型需要tf的版本>=1.2.1,因此我安裝的版本是1.2.1。大家根據自己的需要來安裝相應的版本。
檢查tensorflow是否安裝成功:
python3
import tensorflow as tf