安裝 nvidia 驅(qū)動,cuda, 以及 cudnn

安裝 nvidia 驅(qū)動是一個很坑的問題。至少對于我來說,按照 nvidia 官網(wǎng)的方式下載 .run 文件安裝從來沒成功過。最后我搜了內(nèi)外網(wǎng),找到了本文即將介紹的安裝方式,很好用!

安裝 nvidia 驅(qū)動

  1. 添加 nvidia repository
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
  1. 選擇驅(qū)動版本并安裝
ubuntu-drivers devices

顯示可用的驅(qū)動版本,例如:

driver   : nvidia-410 - third-party free
driver   : nvidia-415 - third-party free
driver   : nvidia-418 - third-party free
driver   : nvidia-384 - distro non-free
driver   : nvidia-430 - third-party free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

如果要安裝 410 版本,就用如下命令

sudo apt install nvidia-410

也可以選擇 415, 418 等其他驅(qū)動版本。
上邊顯示的驅(qū)動可能會有變化,例如這樣(中間多了 "driver" 字樣)

driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-440 - third-party free recommended
driver   : nvidia-driver-430 - third-party free
driver   : nvidia-driver-390 - third-party free
driver   : nvidia-driver-435 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin

依然安裝對應(yīng)的驅(qū)動,例如

sudo apt install nvidia-driver-410

注意:如果在 BIOS 中將 secure boot 設(shè)置為 on,在上述安裝過程中可能出現(xiàn)設(shè)置 secure boot 密碼的相關(guān)提示。如果在安全性方面要求不是很苛刻,可以考慮將 secure boot 設(shè)置為 off.

  1. 重啟,然后通過用如下命令查看顯卡信息
nvidia-smi

其中 smi = System Management Interface。

如果重啟之后運(yùn)行 nvidia-smi 時出現(xiàn)如下錯誤:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

一種可能的解決方法是在 "Software & Updates" 界面中選擇其他驅(qū)動版本,尤其是較新的版本,Apply changes 之后重啟,可能解決問題。

如果上述方式安裝失敗,可以參考這篇文章,嘗試其他的安裝方法。也可以參考這篇文章 中的安裝方式。

安裝 cuda

安裝 cuda 是為了加速訓(xùn)練神經(jīng)網(wǎng)絡(luò)。首先去下邊的網(wǎng)站確定一下本機(jī) NVIDIA 顯卡類型是否支持 cuda
https://developer.nvidia.com/cuda-gpus
只要不是太古老的 NVIDIA 顯卡一般都支持 cuda。

如果訓(xùn)練中用到了 tensorflow,應(yīng)該確認(rèn)一下 cuda 版本與 tensorflow 版本的兼容性問題。有些程序指定要用某個版本的 tensorflow,那么就應(yīng)該安裝與之兼容的 cuda 版本。


versions.png

如果裝了 cuda 10 ,但是訓(xùn)練程序使用 tensorflow 1.11,版本不匹配,運(yùn)行程序時會提示類似如下的錯誤:

 ImportError: libcublas.so.9.0: cannot open shared object file

版本對應(yīng)關(guān)系可以在這里查詢。

PyTorch 的版本與 cuda 版本也有對應(yīng)關(guān)系,在 PyTorch 主頁 可以下載與 cuda 對應(yīng)的版本,如果要下載更舊的版本,可以在這里這里查找。

說到版本對應(yīng)關(guān)系,cuda 對 nvidia GPU 驅(qū)動也是有最低版本要求的,可以查看這里。

確定要安裝的 cuda 版本之后,按照 官網(wǎng)步驟安裝即可。

例如,我選擇的是 cuda 10.0


Screenshot from 2019-01-21 20-35-41.png

安裝完了還需要檢查一下是否成功:

cd /usr/local/cuda/bin

./nvcc -V

若顯示 cuda compiler 版本,這樣就說明 cuda 安裝成功了。

安裝 cudnn

這一部分也是按照官網(wǎng)的指導(dǎo)安裝即可 https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html。
比較麻煩的一點是,需要先注冊才能下載 cudnn 安裝文件。

選擇安裝文件版本的時候,要與 cuda 版本匹配,就是上邊 nvcc -V 顯示的版本。注意,不是nvidia-smi 中顯示的 cuda 版本。這兩個版本可能是不一致的,以 nvcc 為準(zhǔn)。

如果 nvcc -Vnvidia-smi 顯示的版本不一致,可能的原因可以參考這里: https://www.nuomiphp.com/eplan/en/163997.html
簡單來說, cuda 有兩類 API:cuda driver API 和 cuda runtime API。在安裝 nvidia 驅(qū)動時,附帶安裝了 driver API,nvidia-smi 顯示的是 driver API 版本;在安裝 cuda 時安裝了 runtime API,nvcc -V 顯示的時 runtime API 版本。一般基于 cuda 開發(fā)的程序都是考慮 runtime API 版本,也就是nvcc -V 顯示的版本。

然后就是安裝,我的系統(tǒng)是 ubuntu 16.04,對應(yīng)下載如下三個文件


Screenshot from 2019-01-21 20-53-21.png

下載之后安裝:

sudo dpkg -i libcudnn*.deb

驗證是否安裝成功

cp -r /usr/src/cudnn_samples_*/ $HOME
cd  $HOME/cudnn_samples_*/mnistCUDNN
make clean && make
./mnistCUDNN

如果一切順利,尤其是版本匹配沒有問題,應(yīng)該會提示 "......Test passed!”
如果編譯過程中提示沒有頭文件 FreeImage,通過如下方式安裝:

sudo apt-get install libfreeimage3 libfreeimage-dev

對于有些 test 不通過的情況,重啟一下機(jī)子可能就解決問題了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容