随着pytorch、tensorflow等一众机器学习的框架不断更新,对于计算机的软硬件的要求越来越高。在tensorflow-gpu1.4版本以后, GPU加速必须在cuda9以上才可以完成加速。cuda9以后的版本在Linux系统上只支持Ubuntu16.04和Ubuntu17.04,这个就强迫你不仅仅是要安装加速模块, 甚至还要升级系统,本博客将对Ubuntu16.04上安装cuda9.0+cudnn7.0做详细说明。

设备要求

系统:Ubuntu16.04及以上

显卡:博主是一块GTX 1080,只要你是以下类型的都可以

驱动:nvidia系列(384以上),显卡驱动的版本必须大于等于cuda的sh文件名里面的版本号

检查安装驱动

  不要上来就去装驱动,首先要检测自己的驱动是不是符合要求的,打开终端,输入

nvidia-smi

  如果完全无反应的话,恭喜你!你需要重新安装驱动了,如果有以下的显示:

  你需要好好看看自己的驱动型号了,cuda9.0必须要Nivdia 384及以上才可以正常安装,我的驱动是387.12就符合要求,如果你的型号小于384那还是恭喜你, 依旧需要重装驱动了。如果你的大于384,你就可以跳过此步,进行下面的操作了。

  首先需要去官网上下载符合你GPU的驱动,按照你的型号,找到符合自己的驱动!

  目前驱动已经有390以上的了,可以考虑!

  接下来就是驱动的正式安装。

a.打开终端,先删除旧的驱动:

sudo apt-get purge nvidia*

b. 禁用自带的 nouveau nvidia驱动

看下Nouveau是否已经被禁用

lsmod | grep nouveau 

如果已经没有任何显示说明不用禁用了,否则继续下面操作

sudo vim /etc/modprobe.d/blacklist-nouveau.conf #创建一个文件(注:按一下i键,表示现在进行内容插入)

并添加如下内容:

blacklist nouveau
options nouveau modeset=0

注:退出可用两个命令中任意一个:

  • 按完esc键后,按shift+zz 或者
  • 按完esc键后,输入“:wq!”双引号里面的内容

再更新一下:

sudo update-initramfs –u

确认下Nouveau是已经被禁用:

lsmod | grep nouveau 

没有输出什么东西,说明已经成功关闭了。

c.关闭X-window服务:

  Ctrl+Alt+F1切换到无桌面命令终端:这里lightdm是你自己的显示管理器,也可能是gdm,kdm,到底是哪一个可以使用 cat /etc/X11/default-display-manager进行查看,然后修改,并关闭显示管理器。这里下面几小步建议用手机拍照,对着照片来做,因为你可能不太熟悉

sudo service lightdm stop

此时正式进入终端界面:

Login:用户账号

Password:用户密码

安装:

cd  /home/wlh/tmp # 导到你的下载的驱动放在哪里的地址

sudo sh NVIDIA-Linux-x86_64-387.12.run

按照如下步骤安装:

(1)accept

(2)contiuned install

后面默认yes安装就好了

启动显示器:(lightdm只是我的显示管理器,你可能是前面的说的gdm)

sudo service lightdm start

然后按Ctrl+Alt+F7 进入到桌面进行操作

检查是否成功

nvidia-smi

如果有以下显示:

恭喜你!驱动已经正常安装了,可以进行下面操作了。

安装cuda9.0

  首先去官网下载cuda9.0, 下载那个1.6G的.run文件,下载完毕就可以正式安装了。

进入下载目录,给文件添加运行权限:

chmod +x ./cuda_9.0.176_384.81_linux.run

运行安装

sudo ./cuda_9.0.176_384.81_linux.run

启动安装程序,一直按空格到最后(可以选择Ctrl+c跳过),不用担心,到99%的时候,输入accept接受条款 

注意:第一个提醒你是否安装驱动时,选“n”,其余都“y”

安装完毕后就需要添加环境了,这步很重要!!!

gedit ~/.bashrc

把下面的内容添加到最后:

export CUDA_HOME=/usr/local/cuda

export PATH=$PATH:$CUDA_HOME/bin

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

测试是否安装成功

nvcc -V

如果你看到以下显示,恭喜你cuda9.0你已经装好了!

安装cudnn7.0.5

  注册一个账号,去官网上下载cudnn7.0.5。

  选择适配Linux的,也就是图上的第四个!

  下载完直接解压,解压会出现一个cuda文件夹,里面有两个文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录里。 如果你就在local下解压的就不要移动了。只需要给文件加读权限即可!

sudo chmod a+x /usr/local/cuda/include/cudnn.h

sudo chmod a+x /usr/local/cuda/lib64/libcudnn*

  然后更新网络连接:

cd /usr/local/cuda/lib64/  
sudo chmod +r libcudnn.so.7.0.5  # 自己查看.so的版本  
sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig 

  查看cudnn版本,检查是否安装好:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

  如果有如下显示,恭喜你,你可以出关去吃烧烤去了!

  到目前为止,cuda9.0以及cudnn7.0就已经安装完毕了,可以正常使用了,如果你按照上面步骤一步步下来的话,我想肯定是没多大问题的。最后, 我们再说下如何卸载。

卸载CUDA以及CUDNN

(1)卸载CUDA

sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl 

(2)卸载CUDNN

删除原来的cudnn文件:

sudo rm -rf /usr/local/cuda-9.0/lib64/libcudnn*

sudo rm -rf /usr/local/cuda-9.0/include/cudnn.h

感谢

  十分感谢来自华南理工的大佬佳明同学的联手完成此篇博客的写作!

参考文献

[1]  [2]  [3]  [4]  [5]  [6]

谢谢观看,希望对您有所帮助,欢迎指正错误,欢迎一起讨论!!!