感谢CUDA9.1、cuDNN7在Ubuntu16.04上的安装详细的教程,花了几个小时解决的环境配置的问题。其中遇到了一些问题,总结一下,以后再安装就会很顺利了~
操作系统:Ubuntu16.04
显卡:Quadro M6000
$ lspci | grep -i nvidia
$ uname -m && cat /etc/*release
$ gcc --version
若未安装,则键入:
$ sudo apt-get install gcc
$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
CUDA使用runfile文件安装:直接安装会提示无法定位内核,因此先装驱动!(惨痛教训)。驱动建议使用apt安装,runfile文件安装容易出现各种问题(惨痛教训x2)
1、卸载原有驱动
$ sudo apt remove --purge nvidia*
2、禁用nouveau驱动
终端运行如下代码,若有输出,则表示nouveau正在运行, 需要我们手动禁掉nouveau
$ lsmod | grep nouveau
在/etc/modprobe.d中创建文件blacklist-nouveau.conf
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在文件中输入以下内容:
blacklist nouveau
options nouveau modeset=0
更新配置使它生效
$ sudo update-initramfs -u
再次查看nouveau,若没有 结果输出,则禁用成功
$ lsmod | grep nouveau
3、安装驱动
重启,不要登录进桌面
$ sudo reboot
按Ctrl+Alt+F1进入字符终端界面,输入用户名和密码进行登录。添加Graphic Drivers PPA。
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
寻找合适的驱动版本。可以看到“third-party free recommended”对应的即为合适的驱动。我使用的是nvidia-396
ubuntu-drivers devices
apt安装:在安装一路点击yes,过程中会让你设置密码什么的。
$ sudo apt-get install nvidia-396
安装完成后,重启。注意,重启过程中需要在bios中关闭安全启动secure boot,设置为OFF,不然后面会在ubuntu登录界面循环,进不去系统(惨痛教训x3)
$ sudo reboot
登录后,查看安装是否成功
$ sudo nvidia-smi
$ sudo nvidia-settings
1、安装runfile文件
下载系统对应的CUDA的runfile文件。重启系统,在登录界面时按Ctrl+Alt+F1进入字符终端界面,登录成功后, 关闭图形化界面。
$ sudo service lightdm stop
cd到文件路径,执行安装文件
$ chmod 777 cuda_9.1.85_387.26_linux.run
$ sudo sh cuda_9.1.85_387.26_linux.run
单击回车,直到提示“是否为NVIDIA安装驱动?” 。选择否,因为已经安装好驱动程序,其他都是默认。
2、检验安装
重新启动图形化界面。同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。 如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了
$ sudo service lightdm start
检查Device Node Verification。若结果显示包含/dev/nvidia-uvm,则表示成功。否则需要进行下一步(我成功了,不用这一步)。
$ sudo reboot
$ ls /dev/nvidia*
3、失败的解决方法
首先要添加一个启动脚本。这里附上rc.local的百度云链接:
https://pan.baidu.com/s/1HU9QL6Qut3NubJw4RClmIQ,密码:r7j4
$ sudo vim /etc/rc.local
把文件的第一行的#!/bin/sh -e中的-e去掉, 在#!/bin/sh和exit 0之间,添加以下内容:
保存文件并重启,再次查看,这时你应该能直接看到/dev目录下的三个nvidia的文件
4、设置环境变量
$ sudo vim /etc/profile
在打开的文件末尾,添加以下两行(现在一般都是64位吧)
$ export PATH=/usr/local/cuda-9.0/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
重启电脑,检查上述的环境变量是否设置成功。
$ cat /proc/driver/nvidia/version
验证CUDA Toolkit
$ nvcc -V
需要尝试编译cuda提供的例子,看cuda能否正常运行 (需要十多分钟)
$ cd /home/user_name/NVIDIA_CUDA-9.1_Samples
$ make
运行编译生成的二进制文件
$ cd bin/x86_64/linux/release
$ ./deviceQuery
再检查一下系统和CUDA-Capable device的连接情况
$ ./bandwidthTest
去NVIDIA的官网下载适合cuda版本的deb文件(目前官网基本只提供deb文件了)
注意,这是三个文件,分别进行下载安装
$ sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.1_amd64.deb
最后,通过deb文件安装,/usr/src目录下会有cudnn_samples_v7,我们可以验证cudnn是否成功
$ cp -r /usr/src/cudnn_samples_v7 $HOME
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN