Ubuntu16.04单显卡安装Nvidia驱动+GTX750显卡安装CUDA9.1+cuDNN71.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] 关闭桌面系统服务

*

1

2

如果是unity桌面执行第一条,如果是gnome桌面执行第二条

$ sudo systemctl stop lightgdm.service

$ sudo systemctl stop gdm.service

[2] 使用以下命令安装nvidia的官方闭源驱动,这里使用runfile安装

*

1

2

一切默认即可

*

驱动自行下载,按照显卡型号选择即可

$ 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键,直到读完

*

1

2

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 即可,登录系统

*

1

2

此时如果没有出现循环登录,则基本安装成功

[7] 重启系统

[8] 输入命令:

*

1

2

如果没有出现:/dev/nvidia-uvm 则为安装不全

$ ls /dev/nvidia*

[9] 针对第8步中安装不全的情况:

*

1

2

认真阅读官方文档:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

*

编辑开机启动文件:/etc/rc.local,在文件的#!/bin/sh(注意要删掉-e)和exit 0 之间添加如下内容:

/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:PATHexportLDLIBRARYPATH=/usr/local/cuda−9.1/lib64:PATHexportLDL​IBRARYP​ATH=/usr/local/cuda−9.1/lib64:LD_LIBRARY_PATH

[12] 验证安装:

*

1

2

验证驱动:$ 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 表示成功

*

1

2

运行:$ ./bandwidthTest,成功的判断同上

6.使用deb包安装cuDNN 7.1.3

*

1

2

下载需要注册成为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

*

1

2

如果出现:./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

推荐阅读更多精彩内容

  • 看到《一生气就撞墙的男生》,我不由得想起了我教过的学生小新、小佳和小茹。小佳尤其像小健,只是在学习中,我就...
    李春红_7fb4阅读 66评论 0 0
  • 以前一直觉得钱真不是万能的,但现在我深深的体会到没钱是万万不能的;以前一直都觉得喜欢了就一定要在一起,现在觉得在一...
    阿静喜静阅读 46评论 0 0
  • 北上广,逃离or奔向? 先说北上广: 为了简化问题,我们只从竞争角度来说,想要逃离广的一些人,认为北上广人多竞争大...
    苗栋栋阅读 134评论 0 0