Ubuntu18.04 安装显卡驱动、CUDA、CUDNN

前言

最近,在重装的Ubuntu18.04系统上重新配置了深度学习要用到的一些环境,其中最重要的莫过于显卡驱动以及Cuda的安装,先将安装步骤以及过程中的问题进行总结。
整个过程中没有太难的地方,只是有些细节需要注意,例如后面CUDNN安装时就会讲到。

一.安装显卡驱动

首先查看系统推荐安装的显卡驱动

ubuntu-drivers devices

我的输出如下

== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001E81sv00001043sd00008736bc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-435 - distro non-free
driver   : nvidia-driver-440-server - distro non-free recommended
driver   : nvidia-driver-440 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

可以看到430,440等,之后在驱动下载里面对应选择自己的显卡信息,并找到对应版本的显卡驱动下载。
首先安装相关的软件包

$ sudo apt install make cmake gcc g++ python-pip
$ sudo apt install make git vim wget cmake

之后在驱动目录下执行

$ sudo chmod +x NVIDIA-Linux-x86_64-430.50.run 

禁用nouveau并重启.

$ sudo gedit /etc/modprobe.d/blacklist.conf
# 最后一行加上: blacklist nouveau
$ sudo update-initramfs -u
$ reboot

重启之后执行

$ lsmod | grep nouveau

没有任何输出就代表禁用成功了。
下面开始安装
sudo ./NVIDIA-Linux-x86_64-430.50.run

按照如下步骤安装

(1)Accept
(2)contiuned install
(3) Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option.
 然后这里也没什么事,直接继续就可以了。
(4)would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X ? Any pre-existing X configuration file will be backed up 
直接选择 NO,意思是安装驱动时不检查X服务
(5) Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64(version:390.25) is now complete.  Please update your XF86Config or xorg.conf file as appropriate;see the file
/usr/share/doc/NVIDIA_GLX-1.0/README.txt for details.
只有一个选项,选择Ok就行了。
然后键入重启
$ sudo reboot

重启之后查看安装成功没:

$ nvidia-smi

会出现如下信息

Sat Aug  8 10:43:36 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.50       Driver Version: 430.50       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:01:00.0  On |                  N/A |
| 20%   36C    P8     9W / 250W |    200MiB /  7981MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       993      G   /usr/lib/xorg/Xorg                           198MiB |
+-----------------------------------------------------------------------------+

到此为止,显卡驱动已经安装完成。
在运行驱动程序安装文件时候,可能会提示很多例如g++版本高、或者32位等问题,直接忽视掉即可,完成安装后,分辨率回归正常就证明没问题了。

二.安装CUDA.

首先,第一步,也是最重要的下载CUDA和CUDNN,一定要按照这里面圈住的找到对应版本的去下载,后面CUDNN我会讲到这个问题。
安装CUDA

$ sudo sh cuda_10.0.130_410.48_linux.run

然后会出现很多需要选择的,只有显卡驱动项(在第二个)选择N,其余几项全部选择Y,其他的就是直接回车键默认.
之后进行环境配置,在终端输入:

$ sudo gedit ./bashrc

将下面两句添加到环境变量中去:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0

保存并退出,使其生效

source ~/.bashrc

三.安装CUDNN.

这里要着重讲一些CUNDD下载的问题,在上面的下载过程中一定要选择和红色圈起来的名称位置一样的CUDNN,除了版本好需要对应成自己的


cudnn下载.png

可以在下载解压后,看一下目录结果是不是/cuda/include、/cuda/lib。如果多了其他层级的目录,就证明错误了,这样的话,符号链接库是无法正常使用的,例如我的QT项目应用编译就会提示libcudnn.so格式错误。
之后可以开始安装
cd cuda/include中执行如下指令:

$ sudo cp  cudnn.h /usr/local/cuda-10.0/include/

cd cuda/lib64中执行如下指令:

$ sudo cp libcudnn* /usr/local/cuda-10.0/lib64/ 

修改权限

$ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h 
$ sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*

在终端查看CUDNN版本:

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

输出显示如下

DNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 4
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

检验安装

$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make 
$ ./deviceQuery

输入的最后一句里面result为pass即表示成功。

参考文章

1.Ubuntu18.04下安装Nvidia驱动和CUDA10.1+CUDNN
2.Ubuntu16.04安装NVIDIA显卡驱动
3.下载CUDA和CUDNN
4.Ubuntu 18.04上安装cuda

你可能感兴趣的:(Ubuntu18.04 安装显卡驱动、CUDA、CUDNN)