【深度学习】CUDA9.0、cuDNN7在Ubuntu16.04上的安装

参考

感谢CUDA9.1、cuDNN7在Ubuntu16.04上的安装详细的教程,花了几个小时解决的环境配置的问题。其中遇到了一些问题,总结一下,以后再安装就会很顺利了~

环境

操作系统:Ubuntu16.04
显卡:Quadro M6000

1 前期准备

  • 在【CUDA的官网】查看自己的GPU版本是否在CUDA的支持列表中
$ lspci | grep -i nvidia
  • 验证自己的Linux版本是否支持 CUDA,一般都支持
$ uname -m && cat /etc/*release
  • 验证是否安装了gcc
$ gcc --version

若未安装,则键入:

$ sudo apt-get install gcc
  • 验证是否安装了kernel header和 package development
$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)

2 安装NVIDIA驱动

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

3 安装CUDA

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之间,添加以下内容:

【深度学习】CUDA9.0、cuDNN7在Ubuntu16.04上的安装_第1张图片

保存文件并重启,再次查看,这时你应该能直接看到/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

4 安装cudnn

去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

你可能感兴趣的:(【深度学习】CUDA9.0、cuDNN7在Ubuntu16.04上的安装)