Ubuntu 16.04 單顯示卡安裝Nvidia驅動+GTX750顯示卡安裝CUDA 9.1+cuDNN 7.1.3
1.移除原有nvidia驅動
$ sudo apt-get remove --purge nvidia* 2.禁用nouveau驅動
$ sudo vim /etc/modprobe.d/blacklist.conf
// 在檔案末尾新增:
blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv
blacklist nvidiafb
$ sudo update-initramfs -u 3.進入字元介面:ctrl+alt+F1 4.開始安裝
[1] 關閉桌面系統服務
*
如果是unity桌面執行第一條,如果是gnome桌面執行第二條
$ sudo systemctl stop lightgdm.service $ sudo systemctl stop gdm.service [2] 使用以下命令安裝nvidia的官方閉源驅動,這裡使用runfile安裝
*
一切預設即可 * 驅動自行下載,按照顯示卡型號選擇即可
$ sudo ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files * [3] 重啟系統
[4] 執行命令:nvidia-smi
5.安裝CUDA 9.1,這裡使用runfile安裝 [1] 進入字元介面:ctrl+alt+F1 [2] 關閉圖形介面:同上 [3] 執行以下命令:
$ chmod +x cuda_9.1.85_387.26_linux.run
$ sudo ./cuda_9.1.85_387.26_linux.run [4] 關於安裝選項:在安裝開始時會讓你閱讀一份協議書,按住Enter鍵,直到讀完
*
Do you accept the previously read EULA? accept * Install NVIDIA Accelerated Graphics Driver for Linux-X86_64 xxx.xxx? no * Install the CUDA 9.1 Toolkit? yes * Enter Toolkit Location,這個直接按Enter即可 * Do you want to install a symbolic link at /usr/local/cuda? yes * Install the CUDA 9.1 Samples? yes * Enter CUDA Samples Location,這個直接按Enter即可 * 注意如果:在安裝顯示卡驅動之前完成了 SLAM 和 ROS 的配置,就不會出現缺失庫的情況
如果出現missing recommended libraries,執行以下命令即可
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev [6] 重啟圖形介面:將上面的命令中 stop 換為 restart 即可,登入系統
*
此時如果沒有出現迴圈登入,則基本安裝成功
[7] 重啟系統 [8] 輸入命令:
*
如果沒有出現:/dev/nvidia-uvm 則為安裝不全
$ ls /dev/nvidia*
[9] 針對第8步中安裝不全的情況:
*
/sbin/modprobe nvidia
if [ “$?” -eq 0 ]; then
Count the number of NVIDIA controllers found.
NVDEVS=lspci | grep -i NVIDIA
N3D=echo "$NVDEVS" | grep "3D controller" | wc -l
NVGA=echo "$NVDEVS" | grep "VGA compatible controller" | wc -l
N=expr $N3D + $NVGA - 1
for i in seq 0 $N
; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else exit 1 fi
/sbin/modprobe nvidia-uvm
if [ “$?” -eq 0 ]; then
Find out the major device number used by the nvidia-uvm driver
D=grep nvidia-uvm /proc/devices | awk '{print $1}'
mknod -m 666 /dev/nvidia-uvm c $D 0 else exit 1 fi [10] 重啟系統,再次執行命令: $ ls /dev/nvidia*
[11] 新增環境變數,並重啟系統:
$ sudo vim /etc/profile
// 在所有環境變數之後新增如下內容:
export PATH=/usr/local/cuda-9.1/bin:LD_LIBRARY_PATH [12] 驗證安裝:
*
驗證驅動:$ cat /proc/driver/nvidia/version * 驗證CUDA Toolkit:$ nvcc -V * 編譯測試:使用Sample,正常編譯都會成功,一般時間為30分鐘
$ cd NVIDIA_CUDA-9.1_Samples
$ make * 執行編譯的程式:
$ cd bin/x86_64/linux/release/
$ ./deviceQuery
最後出現:Result=Pass 表示成功
*
執行:$ ./bandwidthTest,成功的判斷同上
6.使用deb包安裝cuDNN 7.1.3
*
下載需要註冊成為nvidia的開發者 * 注意版本對應 * 可以使用的安裝方式有:tgz,deb * Sample目錄為:/usr/src/cudnn_samples_v7/ * 安裝包: * libcudnn7_7.1.3.16-1+cuda9.1_amd64.deb * libcudnn7-dev_7.1.3.16-1+cuda9.1_amd64.deb * libcudnn7-doc_7.1.3.16-1+cuda9.1_amd64.deb
$ sudo dpkg -i *.deb * 編譯測試:最後會出現Test passed!就表示成功
$ cp -r /usr/src/cudnn_samples_v7/ ~/ $ cd ~/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN
*
如果出現:./mnistCUDNN: error while loading shared libraries: libcudart.so.9.1: cannot open shared object file: No such file or directory,是因為庫沒有正確連結
$ sudo cp /usr/local/cuda-9.1/lib64/libcudart.so.9.1 /usr/local/lib/libcudart.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcublas.so.9.1 /usr/local/lib/libcublas.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcurand.so.9.1 /usr/local/lib/libcurabd.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig