前言
最近,在重装的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,除了版本好需要对应成自己的
可以在下载解压后,看一下目录结果是不是/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