安裝 nvidia 驅(qū)動是一個很坑的問題肛捍。至少對于我來說隐绵,按照 nvidia 官網(wǎng)的方式下載 .run 文件安裝從來沒成功過。最后我搜了內(nèi)外網(wǎng)拙毫,找到了本文即將介紹的安裝方式依许,很好用!
安裝 nvidia 驅(qū)動
- 添加 nvidia repository
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
- 選擇驅(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.
- 重啟,然后通過用如下命令查看顯卡信息
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 版本。
如果裝了 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
安裝完了還需要檢查一下是否成功:
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 -V
和nvidia-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)下載如下三個文件
下載之后安裝:
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ī)子可能就解決問題了。