一、准备工作

  1. 查看GPU信息
  2. lspci | grep -i nvidia
  3. 查看当前使用的系统内核版本
  4. uname -r
  5. 查看gcc版本
  6. gcc --version
  7. 查看所有内核
  8. sudo dpkg --get-selections|grep linux-image

图片.png

CUDA8.0最高仅支持4.4版本内核,因此第一步工作就是更换系统内核。如你的内核不高于4.4,可以跳过整个该步骤。实际上我用的这个镜像安装完内核版本上4.14,高于cuda8要求打4.4,因此必须更换系统内核。

sudo apt-get install linux-image-4.4.0-75-generic
sudo apt-get remove linux-image-4.13.0-75-generic

更换完了内核后要禁用nouveau,这是ubuntu自带的显卡驱动,和CUDA冲突,所以要禁用,不禁用的话可能会导致黑屏或循环登陆。终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。Ubuntu的nouveau禁用方法:

a、在/etc/modprobe.d中创建文件blacklist-nouveau.conf
输入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi编辑器编辑和保存文件)
在文件中输入一下内容:
blacklist nouveau
options nouveau modeset=0

b、在blacklist.conf文件末尾添加一行 blacklist nouveau

c、执行:
$ sudo update-initramfs –u

d、再执行:
$ lsmod | grep nouveau
若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。

重启电脑,发现界面的分辨率,图标大小等变了,这就是禁用 nouveau的效果,等安装完NVIDIA驱动后会恢复正常。
输入 sudo service lightdm stop关闭图形界面,按ctrl+alt+f1或者f2登录帐号

二、安装显卡驱动,CUDA,CUDNN

CUDA提供两种安装方式:package manager安装和runfile安装, package manager 安装方式相对简单一些,但是我在阅读别人博客的过程中发现选择这种方式在安装过程中问题可能多一点,失败的概率较大。为了减少不必要的麻烦我选择runfile安装方式。
下载cuda安装包:cuda官网下载,根据系统信息选择对应的版本,runfile安装的话最后一项要选择 runfile文件。

安装CUDA前要安装显卡驱动,在官网找到对应的驱动下载。显卡驱动文件名:NVIDIA-Linux-x86_64-450.57.run。下载CUDA8的安装文件,官网有好几种,我们选择runfile,下载文件,得到cuda_8.0.61_375.26_linux.run。

安装驱动
sudo sh NVIDIA-Linux-x86_64-450.57.run
在有些系统里不加-no-x-check -no-nouveau-check -no-opengl-files图形界面会循环登录,最好加上
sudo sh NVIDIA-Linux-x86_64-381.22.run -no-x-check -no-nouveau-check -no-opengl-files
image.png
image.png
image.png

在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development
安装了linux-headers-4.4.0-75 linux-headers-4.4.0-75-generic

image.png

正确情况:
image.png
image.png

image.png
image.png

如果报错要进bios将secure boot改成disable
安装完重启

安装cuda,并且禁用opengl,据说是为了防止和系统原有的opengl冲突
sudo sh cuda_8.0.61_375.26_linux.run —no-opengl-lib
安装过程中问是否安装nvidia driver,选no,我们之前已经安装啦
问是否创建 symbolic link,如果是第一次安装就选yes

这样应该就顺利安装完了,重启,sudo service lightdm start开启图形界面
然后就能检测cuda是否安装成功了。
网上有很多博客教怎么设置环境变量。我安装完没有设置,输入 nvcc —version就能看到版本号,运行sample也没问题。

图片.png

终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。
64位系统:
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 /etc/profile

安装cudnn
下载cudnn https://developer.nvidia.com/rdp/cudnn-archive
官网下载要注册,填问卷等,知乎上一个答案有百度网盘链接,下载就行,然后解压

  1. sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
  2. sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
  3. sudo chmod a+r /usr/local/cuda/include/cudnn.h
  4. sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
图片.png

三、测试CUDA是否安装成功

转到sample保存目录,像我在安装过程中用的默认保存位置,因此它们在我的~/NVIDIA_CUDA-8.0_Samples/目录下,在这个目录下,进入./1_Utilities/deviceQuery/,在这个目录下make然后执行./deviceQuery。如果出现如下画面说明CUDA安装成功。
图片.png

图片.png
图片.png

四、参考博客

https://blog.csdn.net/qlulibin/article/details/78714596
https://www.cnblogs.com/left4back/p/10952845.html
https://blog.csdn.net/wanzhen4330/article/details/81699769
https://blog.csdn.net/xunan003/article/details/81665835
https://blog.csdn.net/sinat_30545761/article/details/107709468
https://blog.csdn.net/lb838315586/article/details/82495804