Ubuntu 16.04 CUDA9.1+cuDNN7.1安装

综述

说起深度学习平台的搭建,很多人可能会想起被cuda支配的恐惧。但其实到了现在,随着Nvidia的重视,情况确实有所改善,但cuda的安装对于一个新手来说,依旧不是那么友好。本文在参考了网上的教程和英伟达的官方文档之后,结合自己的思考写下此教程。另外,本次平台搭建的环境如下:

  1. 系统 Ubuntu16.04
  2. N卡 Nvidia GeForce GT 740M

    禁用Nouveau

    想要安装英伟达驱动,首先你需要将Nouveau驱动禁用。
    Linux不同发行版的禁用方式不同,根据
    Cuda安装文档#禁用nouveau
    可知,Ubuntu 版本的禁用方式如下:
    1
    sudo vi /etc/modprobe.d/blacklist-nouveau.conf

在其中添加如下两行:

1
2
blacklist nouveau
options nouveau modeset=0

然后执行以下命令并重启:

1
2
sudo update-initramfs -u
sudo reboot

重新启动后可使用以下命令查看禁用是否成功

1
lspci | grep nouveau

如果什么都不输出,则禁用成功,反之不成功。

安装Nvidia驱动(可选)

Nvidia驱动是一定要安装的,至于此处为什么要注明可选呢,其实是由于在安装Cuda时再安装Nvidia驱动也可。此处讲如何手动安装Nvidia驱动。

首先保证禁用nouveau成功,然后从英伟达驱动下载选择合适的驱动进行下载,例如,我的选择如下图所示

点击搜索并下载,将其放在$home目录下,即/home/xxx/下,同时按下CTRL+ALT+F1进入tty1,输入以下命令

1
2
3
4
sudo service lightdm stop  #关闭图形界面
cd ~ # 进入家目录
sudo chmod a+x NVIDIA-Linux-x86_64-xxx.xx.run #修改执行权限
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run --no-opengl-files #运行

注意再运行时最好加上–no-opengl-files选项,防止无限重启图形界面。
安装完成后,输入以下命令:

1
sudo nvidia-smi

如果出现类似下面的图形,则证明安装驱动成功
结果显示

安装Cuda

如果已经安装了Nvidia驱动的话,可以直接跳到 正式安装Cuda 环节,如果尚未安装好驱动的话,请从 安装前准备 开始

安装前准备

  1. 禁用nouveau
  2. 重启进入text mode, 参考Ubuntu16.04 进入text mode此链接,可与上一步的重启合并。

正式安装Cuda

针对Ubuntu 16.04,Cuda的安装有两种形式,一种是Run installer,另一种是Deb installer,本文选用Run installer.

Cuda下载页面选择并下载,链接包含了我的选择,为方便起见,将下载后的文件放在家目录下,注意下载补丁。例如我下载的有以下文件:

  1. cuda_9.1.85_387.26_linux.run
  2. cuda_9.1.85.1_linux.run
  3. cuda_9.1.85.2_linux.run
  4. cuda_9.1.85.3_linux.run

首先确保,这些文件都具有运行权限,如果没有,可以使用以下命令:
sudo chmod a+x *.run
然后运行以下命令

1
sudo ./cuda_9.1.85_387.26_linux.run

此时会弹出四个选项,依次为

  1. EULA Acceptance。此为用户协议,选择accept
  2. nvidia 驱动安装。 此为安装英伟达驱动,如果已经安装过,则选择n, 未安装过则选择y
  3. Cuda 安装位置。回车,选y
  4. Samples安装位置。回车,选y

至此,安装Cuda完毕

配置Cuda路径

输入以下命令,进行配置环境

1
2
3
4
sudo vi ~/.bashrc
export PATH=/usr/local/cuda-9.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:$LD_LIBRARY_PATH
source ~/.bashrc

安装Cudnn

Cudnn的安装相对简单,不过对于Ubuntu16.04来说,也有两种模式,一种是deb模式,一种是手动copy模式,为保持一致,我们不选择deb模式。

cuDNN官网下载选择与Cuda的版本相匹配的cuDNN。如我的Cuda版本是9.1, cuDNN版本是7.1,下载的文件为cudnn-9.1-linux-x64-v7.1.tgz并将其放入家目录下,输入以下命令:

1
2
3
4
5
tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h \
/usr/local/cuda/lib64/libcudnn*

至此cuDNN安装完毕

后记

在安装完Cuda后,可以编译存储在家目录下的Nvidia-Sample目录下的示例,进行检验,具体也可参考运行Sample

Reference

参考的链接有:

  1. Cuda安装文档
  2. cuDNN安装文档
  3. 知乎专栏–深度学习配置