手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_linux

如果你的电脑安装了 Ubuntu16.04,而且电脑自带一块 NVIDIA GeForce 的 GPU 显卡,那么不用来跑深度学习模型就太可惜了!关于这方面的网上教程很多,但大都良莠不齐。这篇文章将手把手教你如何安装 GPU 显卡驱动、CUDA9.0 和 cuDNN7。值得一试!

注意:由于不同系统,不同 GPU 对应的 CUDA 和 cuDNN 均有差异,本文仅以 Ubuntu16.04、NVIDIA GeForce GPU、CUDA9.0 和 cuDNN7 为例,来介绍安装过程。其它版本过程类似,但存在细微差别,请读者以实践为主。

必要条件

工欲善其事必先利其器,首先确定你的电脑满足下面两个条件。

  • 安装 Ubuntu16.04
  • 电脑自带一块 NVIDIA GeForce GPU 显卡

一、安装 GPU 显卡驱动

有一块 NVIDIA GPU 显卡 还不够,还需要安装 GPU 显卡驱动。

1、首先登陆 GeForce 官网:

​https://www.geforce.cn/drivers​

在手动搜索驱动程序里,选择自己对于的系统,注意是“Linux 64-bit”。其他选项默认即可。然后,点击开始搜索,将会自动搜索你的电脑相匹配的 GPU 显卡驱动,搜索结果如下图所示:

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_linux_02

如上图所示,结果会显示可用的 GPU 显卡驱动程序,确定你需要的版本,直接点击就可以下载了。例如我选择的版本是418.43,下载后的文件是 NVIDIA-Linux-x86_64-418.43.run。

2、打开终端 Terminal,首先卸载系统之前安装的 NVIDIA 显卡驱动,以防万一。(没有安装的可以忽略这一步)


$ sudo apt-get --purge remove nvidia-*


3、打开 blacklist:


$ sudo gedit /etc/modprobe.d/blacklist.conf


在最后添加几行:


blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv


这时候在终端输入:


$ lsmod | grep nouveau


如果没有输出,可以直接进行下一步,安装驱动。如果仍有输出,则在终端输入:


$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf


直接写入:


blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off


保存关闭,再在终端输入下面的命令验证是否没有输出了。


$ sudo update-initramfs -u
$ lsmod | grep nouveau
# 如果这样还有输出,reboot一次


到这一步,应该没有输出了,可以进行安装驱动了。

4、在正式安装驱动之前,请记住你的驱动的 .run 文件的下载路径和完整的文件名。按 Ctrl+Alt+F1 进入命令行界面,输入下面的命令:


$ sudo /etc/init.d/lightdm stop
$ sudo init 3


进入 .run 文件的下载路径,使用 chmod 命令增加 .run 文件的运行权限。


$ chmod a+x NVIDIA-Linux-x86_64-418.43.run

$ sudo ./NVIDIA-Linux-x86_64-418.43.run -no-x-check -no-nouveau-check -no-opengl-files #这里是关闭x server,nouveau和不下载opengl文件


然后就会开始安装程序,安装完成之后,输入下面的命令:


$ nvidia-smi


如果出现与下面类似的结果,证明驱动安装成功了。

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_搜索_03

最后,回到图像界面。


$ sudo /etc/init.d/lightdm start


这样,驱动就算正式安装成功了。

二、安装 CUDA9.0

1、首先,登录 CUDA 的下载网站:

​https://developer.nvidia.com/cuda-downloads​

由于现在 CUDA 的版本已经更新到 10 了,我们需要安装 9.0 版本。因此,点击 Legacy Releases,进入之前的版本列表。

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_linux_04

然后,在 CUDA 版本列表中,选择 9.0 版本。

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_显卡驱动_05

选择对应的系统等信息,就可以点击 Download 进行下载了。注意选择下载 runfile 文件。

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_linux_06

2、打开终端,进入 CUDA9.0 的下载目录,输入:


$ chmod a+x cuda_9.0.176_384.81_linux.run
$ sudo ./cuda_9.0.176_384.81_linux.run


然后就会进入安装。在安装过程中会询问你一些配置信息,一般直接选择默认选项就行。有一个必须注意的地方是会让你选择是否安装 Graphics Driver for Linux-x86_64:XXXX 版本,这个地方必须选择 no!否则会覆盖之前的驱动。

3、安装完毕之后,声明环境变量。打开 .bashrc 文件,在终端输入:


$ sudo gedit ~/.bashrc


在文件最后加上:


export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


保存退出。


$ source ~/.bashrc


4、验证 GPU 驱动版本:418.43


$ cat /proc/driver/nvidia/version


手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_显卡驱动_07

验证 CUDA 版本:9.0


$$ nvcc -V


手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_搜索_08

5、还有可能遇到的问题是没有安装 gcc 或者 gcc 版本过高需要手动进行降级,都比较好解决,这里就不再赘述了。

三、安装 cuDNN

1、首先,进入 cuDNN 的下载网站:

​https://developer.nvidia.com/rdp/cudnn-download​

值得一提的是,下载之前是需要先注册账号。在下图所示的版本列表中,选择适配 CUDA9.0 的,对应的是 Linux 系统。

手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_搜索_09

2、下载完毕之后,解压:


$ tar -zxvf cudnn-9.0-linux-x64-v7.6.1.34.tgz


解压命令输出如下:


cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.6.1
cuda/lib64/libcudnn_static.a


拷贝相关文件至指定目录:


$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/


3、到本地 cuda 路径,创建软连接,终端输入:


$ cd /usr/local/cuda/lib64
$ sudo chmod +r libcudnn.so.7.6.1
$ sudo ln -sf libcudnn.so.7.6.1 libcudnn.so.7
$ sudo ln -sf libcudnn.so.7 libcudnn.so
$ sudo ldconfig


注意,这里的文件名即版本号就参照之前解压出来的文件名对照着写。

4、到本地 cuda 路径下检测一下:


$ cd /usr/local/cuda/lib64
$ ll


出现 cuDNN 对应的版本号就证明安装成功!


lrwxrwxrwx 1 root root 13 3 19 16:02 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx 1 root root 17 3 19 16:02 libcudnn.so.7 -> libcudnn.so.7.6.1*
-rwxr-xr-x 1 root root 287641664 3 19 16:00 libcudnn.so.7.6.1*


大功告成!GPU 显卡驱动 + CUDA9.0 + cuDNN7 环境配置完成。





手把手教你在 Ubuntu16.04 安装 GPU 驱动 + CUDA9.0 + cuDNN7_搜索_10