Ubunt16.04 搭建 GPU 顯示卡驅動 + CUDA9.0 + cuDNN7 詳細教程

紅色石頭發表於2019-08-12

如果你的電腦安裝了 Ubuntu16.04,而且電腦自帶一塊 NVIDIA GeForce 的 GPU 顯示卡,那麼不用來跑深度學習模型就太可惜了!關於這方面的網上教程很多,但大都良莠不齊。這篇文章將手把手教你如何安裝 GPU 顯示卡驅動、CUDA9.0 和 cuDNN7。值得一試!

注意:由於不同系統,不同 GPU 對應的 CUDA 和 cuDNN 均有差異,本文僅以 Ubuntu16.04、NVIDIA GeForce GPU、CUDA9.0 和 cuDNN7 為例,來介紹安裝過程。其它版本過程類似,但存在細微差別,請讀者以實踐為主。

必要條件

工欲善其事必先利其器,首先確定你的電腦滿足下面兩個條件。

  • 安裝 Ubuntu16.04
  • 電腦自帶一塊 NVIDIA GeForce GPU 顯示卡

一、安裝 GPU 顯示卡驅動

有一塊 NVIDIA GPU 顯示卡 還不夠,還需要安裝 GPU 顯示卡驅動。

1、首先登陸 eForce 官網,在手動搜尋驅動程式裡,選擇自己對於的系統,注意是“Linux 64-bit”。其他選項預設即可。然後,點選開始搜尋,將會自動搜尋你的電腦相匹配的 GPU 顯示卡驅動,搜尋結果如下圖所示:

如上圖所示,結果會顯示可用的 GPU 顯示卡驅動程式,確定你需要的版本,直接點選就可以下載了。例如我選擇的版本是418.43,下載後的檔案是 NVIDIA-Linux-x86_64-418.43.run。

2、開啟終端 Terminal,首先解除安裝系統之前安裝的 NVIDIA 顯示卡驅動,以防萬一。(沒有安裝的可以忽略這一步)

$ sudo apt-get --purge remove nvidia-*

3、開啟 blacklist:

$ sudo gedit /etc/modprobe.d/blacklist.conf

在最後新增幾行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

這時候在終端輸入:

$ lsmod | grep nouveau

如果沒有輸出,可以直接進行下一步,安裝驅動。如果仍有輸出,則在終端輸入:

$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

直接寫入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

儲存關閉,再在終端輸入下面的命令驗證是否沒有輸出了。

$ sudo update-initramfs -u
$ lsmod | grep nouveau
# 如果這樣還有輸出,reboot一次

到這一步,應該沒有輸出了,可以進行安裝驅動了。

4、在正式安裝驅動之前,請記住你的驅動的 .run 檔案的下載路徑和完整的檔名。按 Ctrl+Alt+F1 進入命令列介面,輸入下面的命令:

$ sudo /etc/init.d/lightdm stop
$ sudo init 3

進入 .run 檔案的下載路徑,使用 chmod 命令增加 .run 檔案的執行許可權。

$ chmod a+x NVIDIA-Linux-x86_64-418.43.run
$ sudo ./NVIDIA-Linux-x86_64-418.43.run -no-x-check -no-nouveau-check -no-opengl-files  #這裡是關閉x server,nouveau和不下載opengl檔案

然後就會開始安裝程式,安裝完成之後,輸入下面的命令:

$ nvidia-smi

如果出現與下面類似的結果,證明驅動安裝成功了。

最後,回到影像介面。

$ sudo /etc/init.d/lightdm start

這樣,驅動就算正式安裝成功了。

二、安裝 CUDA9.0

1、首先,登入 CUDA 的下載網站,由於現在 CUDA 的版本已經更新到 10 了,我們需要安裝 9.0 版本。因此,點選 Legacy Releases,進入之前的版本列表。

然後,在 CUDA 版本列表中,選擇 9.0 版本。

選擇對應的系統等資訊,就可以點選 Download 進行下載了。注意選擇下載 runfile 檔案。

2、開啟終端,進入 CUDA9.0 的下載目錄,輸入:

$ chmod a+x cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run

然後就會進入安裝。在安裝過程中會詢問你一些配置資訊,一般直接選擇預設選項就行。有一個必須注意的地方是會讓你選擇是否安裝 Graphics Driver for Linux-x86_64:XXXX 版本,這個地方必須選擇 no!否則會覆蓋之前的驅動。

3、安裝完畢之後,宣告環境變數。開啟 .bashrc 檔案,在終端輸入:

$ sudo gedit ~/.bashrc

在檔案最後加上:

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}}

儲存退出。

$ source ~/.bashrc

4、驗證 GPU 驅動版本:418.43

$ cat /proc/driver/nvidia/version

驗證 CUDA 版本:9.0

$$ nvcc -V

5、還有可能遇到的問題是沒有安裝 gcc 或者 gcc 版本過高需要手動進行降級,都比較好解決,這裡就不再贅述了。

三、安裝 cuDNN

1、首先,進入 cuDNN 的下載網站。值得一提的是,下載之前是需要先註冊賬號。在下圖所示的版本列表中,選擇適配 CUDA9.0 的,對應的是 Linux 系統。

2、下載完畢之後,解壓:

$ tar -zxvf cudnn-9.0-linux-x64-v7.6.1.34.tgz

解壓命令輸出如下:

cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.6.1
cuda/lib64/libcudnn_static.a

複製相關檔案至指定目錄:

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

3、到本地 cuda 路徑,建立軟連線,終端輸入:

$ cd /usr/local/cuda/lib64
$ sudo chmod +r libcudnn.so.7.6.1
$ sudo ln -sf libcudnn.so.7.6.1 libcudnn.so.7  
$ sudo ln -sf libcudnn.so.7 libcudnn.so  
$ sudo ldconfig  

注意,這裡的檔名即版本號就參照之前解壓出來的檔名對照著寫。

4、到本地 cuda 路徑下檢測一下:

$ cd /usr/local/cuda/lib64
$ ll

出現 cuDNN 對應的版本號就證明安裝成功!

lrwxrwxrwx  1 root root        13 3月  19 16:02 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx  1 root root        17 3月  19 16:02 libcudnn.so.7 -> libcudnn.so.7.6.1*
-rwxr-xr-x  1 root root 287641664 3月  19 16:00 libcudnn.so.7.6.1*

大功告成!GPU 顯示卡驅動 + CUDA9.0 + cuDNN7 環境配置完成。

參考文獻:

Ubuntu16.04搭建GTX1080+CUDA9.0+cuDNN7.0.5+Tensorflow1.6.0環境


相關文章