ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn

ubuntu 19.10安装Nvida显卡驱动以及CUDA和cudnn

  • 1. 准备工作
      • 1.1 明确Nvidia显卡驱动与CUDA版本的对应关系
      • 1.2 确认内核头文件,gcc和g++已经安装
      • 1.3 禁用开源nouveau驱动(非常重要!!!)
  • 2. Nvidia驱动安装
      • 2.1 安装方式的选择
      • 2.2 安装
      • 2.3 确认是否安装成功
  • 3. CUDA 安装
      • 3.1 准备安装文件
      • 3.2 安装
      • 3.3 环境变量配置
      • 3.4 确认是否安装成功
      • 3.5 使用cuda samples测试安装是否成功
  • 4. cudnn安装及测试
      • 4.1 获取安装文件
      • 4.2 安装
      • 4.3 测试
  • 5. 几点注意事项
  • 6. 相关参考

ubtuntu 19.10 (代号Eoan Ermine )稳定版已于10月份正式发布,为了体验最新的功能,笔者已经毫不犹豫的安装体验了。因为日常学习与深度学习相关,而配置深度学习开发环境又是一件让人十分头疼的事,特写此文记录在Ubuntu 19.10上安装Nvidia显卡驱动以及CUDA的步骤,以备不时之需,同时也提供给广大网友作为参考。

1. 准备工作

1.1 明确Nvidia显卡驱动与CUDA版本的对应关系

诸如Tensorflow,PyTorch等深度学习工具,不同的版本对CUDA有着明确的版本要求;不同版本的显卡驱动也对应着不同版本的CUDA。因此,在安装前,明确自己的需求,确定合适的版本是十分重要的。笔者在这里给出显卡驱动程序版本与CUDA版本的对应关系,仅供大家参考!
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第1张图片
图片参考自NVIDIA官方文件:NVIDIA官方文件,https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

1.2 确认内核头文件,gcc和g++已经安装

正常安装系统的话,头文件和内核版本应该是已经对应好的,且安装完整的。保险起见,可以运行如下指令,查看内核版本,然后安装对应的头文件。

uname -r
sudo apt-get install linux-headers-$(uname -r)

显卡驱动和CUDA安装过程中会用到gcc和g++,所以务必确认这两项已经安装。可以在bash中运行如下指令查看gcc和g++是否已经安装:

gcc --version
g++ --version

如果gcc和g++已经安装,bash会输出对应的版本。如果输出未安装,可以运行如下指令安装:

sudo apt-get install gcc g++

1.3 禁用开源nouveau驱动(非常重要!!!)

ubuntu安装后,默认使用的是开源驱动,在安装nvidia驱动前,一定要禁用开源驱动,不然会导致一系列问题。禁用步骤如下:

(1). 在/etc/modprobe.d中创建文件blacklist-nouveau.conf

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

(2). 在文件中添加如下内容

blacklist nouveau
options nouveau modeset=0

(3). 执行如下指令,更新系统配置

sudo update-initramfs –u

(4). 重启电脑,执行如下指令,查看是否禁用成功

lsmod | grep nouveau

如果没有输出,则表明nouveau禁用成功,反之,则没有成功,请仔细查看之前的步骤是否执行有误。

2. Nvidia驱动安装

2.1 安装方式的选择

显卡驱动的安装目前来说主要有三种:1.使用ubuntu官方仓库安装;2.使用ppa仓库安装;3.使用Nvidia官方驱动手动安装。后两种安装方法操作步骤多,且失败概率较大,笔者之前就失败了很多次。第一种方法,操作简单,且非常容易成功,十分推荐该方法。本文介绍的也是第一种方法。

2.2 安装

打开终端运行如下指令,检测NVIDIA显卡型号和推荐的驱动程序:

ubuntu-drivers devices

笔者的电脑运行后,输出如下:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第2张图片
输出中包含显卡型号,官方仓库中的驱动版本,以及推荐安装的驱动版本,笔者电脑推荐安装的版本是435。然后运行如下指令,安装推荐的驱动:

sudo ubuntu-drivers autoinstall

等待自动安装完成后,重启电脑。

2.3 确认是否安装成功

(1). 如果驱动安装成功,系统会多一个名为NVIDIA X Server Settings的软件,打开后如下图所示:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第3张图片
(2). 进入 软件&更新,点击附加驱动标签,会有如下显示:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第4张图片
显示已经使用nvidia驱动,版本号为435。

(3). 打开终端,输入如下指令:

nvidia-smi

输出如下:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第5张图片
Driver Version为当前安装使用的驱动版本,CUDA Version为当前版本的驱动对应的CUDA版本。
上述3步验证均通过的话,则表明显卡驱动安装成功。

3. CUDA 安装

3.1 准备安装文件

首先要根据自己的驱动程序版本,以及需要使用的深度学习工具(Tensorflow、PyTorch等)来确定需要的CUDA版本。当然,也可以使用2.3中的nvidia-smi命令来查看当前驱动对应的CUDA版本,笔者这里对应的CUDA版本是10.1。我们前往NVIDIA官方网站下载相应的CUDA安装程序。
CUDA:https://developer.nvidia.com/cuda-downloads
这个网址点进去都是最新的CUDA版本下载页面,如果要下载以前版本的话,点击页面上的Legacy Releases即可选择进入以前发布的版本下载页面。在这里,我们前往CUDA 10.1 Update 2的下载页面,网址如下:
CUDA-10.1 Update2:https://developer.nvidia.com/cuda-10.1-download-archive-update2
NVIDIA官方并没有给出对应于Ubuntu 19.10的安装文件,我们选择ubuntu 18.04就好,最终也是能够安装并运行的,我们选择下载runfile(local)文件进行安装,选择界面如下:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第6张图片
按照上面给出的指示,我们下载文件到~/Downloads目录,指令如下:

cd ~/Downloads
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run

为了确认下载的安装包的完整性,我们需要对安装包进行MD5校验,指令如下:

md5sum [filename]

将filename替换为你下载的CUDA安装文件名,官方给出的校验结果可以如下网址查看
cuda-10.1-update2-md5sum:https://developer.download.nvidia.cn/compute/cuda/10.1/Prod/docs3/sidebar/md5sum.txt
不同版本的CUDA,这个网址是不一样的,下载页面会给出这个网页的链接,笔者上面给出的是cuda-10.1-update2的md5sum校验码,其他版本的请自行查看。

3.2 安装

CUDA的安装不同在图像界面下进行,需要在tty3终端下进行,使用快捷键Ctrl+Alt+F3即可进入tty3,然后输入用户名和密码即可进入系统。之后的安装步骤如下:

(1). 暂停lightdm服务

sudo service lightdm stop

(2). 进入安装文件所在目录,并赋予安装文件可执行权限

cd ~/Downloads
chmod a+x [cuda-install-filename]

笔者的安装文件在~/Downloads目录下,请将[cuda-install-filename]替换为自己下载的安装文件名。

(3). 运行安装指令
ubuntu 19.10自带的是gcc-9,然而目前的CUDA版本是不支持gcc-9的,所以安装过程中的环境检测可能会通不过,出现与current cuda version do not support gcc-9类似。所以,在安装时我们要屏蔽掉安装过程中的环境检测过程,做法是加上 –override flag,具体安装指令如下:

sudo ./[cuda-install-filename] --override

笔者的安装文件在~/Downloads目录下,请将[cuda-install-filename]替换为自己下载的安装文件名。

(4). 安装组件选择
运行上面的安装指令后,会出现文本构成的用户界面,Up和Down按键上下移动选项,Left和Right可以展开和收缩选项,Enter按键用来选择当前选项是否安装。
在这里我们需要注意的是,我们不需要安装cuda安装文件中自带的显卡驱动,因为我们之前已经安装过了。将光标移动到nvidia-driver那一项,然后按下Enter键,当前面的x消失,即表示已经取消这一组件的安装。(很遗憾,忘记拍安装界面了。)
大家也可以在里面自定义cuda组件的安装位置,我是保持默认的,默认安装位置在/usr/local/cuda-[version],同时会建立指向/usr/local/cuda的链接。

3.3 环境变量配置

安装结束后,需要重启lightdm服务,重启指令如下:

sudo service lightdm start

然后使用快捷键Ctrl+Alt+F1重新返回用户图形界面。
到这里,安装并没有结束,我们还需要配置环境变量,我是在/etc/profile中配置环境变量的,在~/.bashrc中配置环境变量也可以,至于在这两个文件中配置环境变量的区别,大家可自行百度。
首先,打开/etc/profile文件,指令如下:

sudo gedit /etc/profile

然后在文件中添加如下内容

64位操作系统:

export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

32位操作系统:

export PATH=/usr/local/cuda-10.1/bin:/usr/local/cuda-10.1/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

具体的路径和大家安装时的配置和系统有关,大家可以cd到安装目录看一下相应文件在自己系统上的名字,然后做出相应的修改。

3.4 确认是否安装成功

/etc/profile的修改需要重启系统才能生效,大家也可以运行如下指令使其在当前终端有效:

source /etc/profile

建议大家还是重启一下系统,使其生效。系统重启后,打开终端,输入如下指令查看cuda版本

nvcc --version

如果安装成功,输出如下所示:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第7张图片

3.5 使用cuda samples测试安装是否成功

前文在安装时,笔者提到过ubuntu 19.10自带默认的是gcc-9,而目前的cuda版本都是不支持gcc-9的,我们在安装时使用 –override 屏蔽了安装环境的检测,但是在运行测试代码时,部分测试在gcc-9下是无法编译的,我们给出如下的解决办法。

(1). 安装gcc-8:

sudo apt-get install gcc-8 g++8

(2). 将gcc-8和g+±8链接到cuda安装目录

sudo ln -s /usr/bin/gcc-8 /usr/local/cuda/bin/gcc
sudo ln -s /usr/bin/g++-8 /usr/local/cuda/bin/g++

然后,我们就可以编译测试代码进行cuda安装是否成功的测试了。

(3). deviceQuery测试
进入cuda samples目录,进入1_Utilities/deviceQuery目录,运行如下指令进行编译和运行:

make
./deviceQuery

如果cuda安装无误,输出如下
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第8张图片
(4). bandwidthTest测试
进入cuda samples目录,进入1_Utilities/bandwidthTest目录,运行如下指令进行编译和运行:

make
./bandwidthTest

如果cuda安装无误,输出如下:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第9张图片

4. cudnn安装及测试

4.1 获取安装文件

根据自己的cuda版本,去nvidia官网网站下载相应的cudnn文件,下载网址如下:
cudnn:https://developer.nvidia.com/cudnn
下载需要NVIDIA开发者账号并登录。我们安装的是cuda-10.1-update2,在这里我们下载两个文件,分别是
cuDNN Library for Linux
cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)

4.2 安装

(1). 解压并复制文件到CUDA安装目录

笔者的CUDA的安装路径为/usr/local/cuda,cudnn安装文件位于~/Downloads目录,具体指令如下:

cd ~/Downloads
tar -xzvf cudnn-<version>.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*

(2). 链接文件

cd /usr/local/cuda
sudo rm -rf libcudnn.so.7 libcudnn.so
sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig

至此,cudnn的安装就完成了,下面进行测试

4.3 测试

cudnn的测试代码和相关文件位于一个deb文件中,我们不需要安装这个文件,直接解压就能获得里面的文件。libcudnn-doc_位于Downloads目录,解压目录为~/Downloads/cudnn_doc,指令如下

cd ~/Downloads
chmod a+x libcudnn-doc_<version>.deb ./cudnn_doc

解压后进入视力代码文件夹,我们使用mnistCUDNN进行测试,进入该文件夹,运行如下指令:

make
./mnistCUDNN

如果CUDA和cuDNN安装无误,输出如下:
ubuntu 19.10安装Nvidia显卡驱动以及CUDA和cudnn_第10张图片

5. 几点注意事项

(1). 安装显卡驱动前,一定要屏蔽nouveau驱动
(2). 安装CUDA,一定要在tty3界面下安装,不能在图形用户界面下安装
(3). 安装CUDA时,不要安装CUDA附带的驱动
(4). 关于gcc版本过高的问题,在安装CUDA时,请使用- -override

6. 相关参考

  1. CUDA Toolkit Document
  2. cuDNN Installation Guide

你可能感兴趣的:(Ubuntu)