如果你的電腦安裝了 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環境