ubuntu安装cuda/cuDNN/TensorRT

文章目录

  • 1.安装说明
  • 2.安装NVIDIA-Driver
    • 2.1.显卡驱动版本要求
    • 2.2.显卡驱动安装
    • 2.3.什么是nouveau驱动
      • 为什么要禁用nouveau?
      • 那为什么要禁用它呢?
      • 禁用nouveu的方法
  • 3.安装CUDA
    • 3.1.两种安装方式
    • 3.2.安装步骤
      • 3.2.1.官网教程
      • 3.2.2.安装过程
    • 3.3.测试安装是否成功
  • 4.安装cuDNN
    • 4.1.安装
    • 4.2.测试安装是否成功
  • 5.TensorRT安装
    • 5.1.什么是TensorRT
    • 5.2.安装TensorRT
    • 5.3.测试

1.安装说明

参考:显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

如果从零开始安装的话,需要注意要安装的东西之间的关系,从下到上依次是NVIDIA-DriverCUDAcuDNN

  • NVIDIA-Driver是显卡驱动,这个是直接和显卡硬件打交道的,所以它是最底层的。

  • CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,可以看成一个库,所以它其次安装。

  • cuDNN准确的说并不需要安装,它只是一些单纯的库文件和头文件,专门为深度学习加速所使用的,比如卷积算子的快速实现。只需要把它的头文件和库文件拷贝到CUDA安装的目录下,这样其他程序就可以使用它了。因此cuDNN的版本必须和CUDA的版本相对应。

2.安装NVIDIA-Driver

2.1.显卡驱动版本要求

NVIDIA-Driver就是显卡驱动,显卡驱动的版本和后面要安装的CUDA的版本有关,因为不同的CUDA版本对最低的显卡驱动版本有不同的要求。要求可以参考 官网 。
ubuntu安装cuda/cuDNN/TensorRT_第1张图片

2.2.显卡驱动安装

关于独立显卡的驱动安装,有两个来源。这里推荐一个写的比较好的安装教程:ubuntu全版本安装 NVIDIA显卡驱动

  • 一个是使用ubuntu软件源中的驱动,但是这里面的驱动可能版本都比较老,无法安装较高版本的驱动。
  • 另一个就是上官网下载想要的版本的驱动,手动安装。但是这个安装过程可能比较麻烦。

安装完毕后,可以使用nvidia-smi命令来查看驱动版本。如下图所示,注意图中的Driver Version版本就是显卡驱动版本,这里我直接使用的是ubuntu软件源中的驱动进行安装的。而后面的CUDA Version并非是我们所说的CUDA版本,可以简单的认为,只要这里的版本大于我们后面真正要安装的CUDA版本就可以。
ubuntu安装cuda/cuDNN/TensorRT_第2张图片

2.3.什么是nouveau驱动

参考:【禁用nouveau驱动】Ubuntu下使用Nvidia显卡导致异常重启

为什么要禁用nouveau?

首先我们来谈一下nouveau是什么:

Nouveau是由第三方为NVIDIA显卡开发的一个开源3D驱动,也没能得到NVIDIA的认可与支持。虽然Nouveau Gallium3D在游戏速度上还远远无法和NVIDIA官方私有驱动相提并论,不过确让Linux更容易的应对各种复杂的NVIDIA显卡环境,让用户安装完系统即可进入桌面并且有不错的显示效果,所以,很多Linux发行版默认集成了Nouveau驱动,在遇到NVIDIA显卡时默认安装。企业版的Linux更是如此,几乎所有支持图形界面的企业Linux发行版都将Nouveau收入其中。

那为什么要禁用它呢?

上面的介绍里面已经提到了,它就是一个显卡驱动,虽然初衷是好的,但是并没有得到NVIDIA的认可,所以对于显卡的调用来说,是不如现在官方提供的驱动来的效果好的。所以,一般情况下, 我们都会选择安装官方的驱动,但是两个驱动难免又互掐的场面,这就会导致系统莫名重启(这一点已经被年轻的我在生产环境测试过了,差点就我曾经有一份工作了,惨啊)。所以,为了我们的官方驱动,就只能忍痛割爱的把它禁用掉。

禁用nouveu的方法

1.在禁用之前,我们可以先看一下现在系统中的nouveau驱动状态:

lsmod | grep nouveau

如果有返回内容,那么就表示还没有被禁用,如果什么结果都没有,那就是成本被禁用掉了,下面的内容不用看了。

2.继续回到禁用的步骤:

  • 把nouveau驱动加入黑名单
 vi /etc/modprobe.d/blacklist-nouveau.conf

正常情况下是没有blacklist-nouveau.conf这个文件,你直接在blacklist.conf文件中添加下面的规则也是可以的。不过为了方便区分,可以新建单独的文件,只要命名符合规则就没有问题。

  • 在打开的规则文件中添加规则
blacklist nouveau
options nouveau modeset=0
  • 更新initramfs然后重启
update-initramfs -u
reboot

3.安装CUDA

3.1.两种安装方式

CUDA的安装又有两种方式(参考:deb版本cuda安装),一种是使用run文件安装, 一种是使用deb文件安装。区别如下:

  • run形式安装cuda(推荐):可以选择是否使用run文件自带的显卡驱动。在安装步骤中出现Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…时,如果选择yes,则安装run文件自带的显卡驱动,但是这个驱动一般都是旧版本的。所以更常见的方式是事先手动安装符合要求的版本的显卡驱动,然后在这一步选择 No不使用该文件自带的旧版本驱动。

  • deb形式安装cuda(不推荐):会默认安装自带的旧版本驱动,故安装成功后还卸载此驱动,再重新安装新版本的显卡对应的驱动。

3.2.安装步骤

3.2.1.官网教程

官网教程

ubuntu安装cuda/cuDNN/TensorRT_第3张图片

3.2.2.安装过程

参考博客(写的比较好):Ubuntu安装和卸载CUDA和CUDNN

这里以自己宿舍台式机的系统为例,这里准备安装的CUDA=10.2,。

  • 检查显卡驱动是否满足要求,可以发现已有的显卡驱动470是满足要求的。
    ubuntu安装cuda/cuDNN/TensorRT_第4张图片

ubuntu安装cuda/cuDNN/TensorRT_第5张图片

  • 下载CUDA安装包
    官网网址
    ubuntu安装cuda/cuDNN/TensorRT_第6张图片
    ubuntu安装cuda/cuDNN/TensorRT_第7张图片

  • 执行安装包,开始安装(命令刚运行要等一会)

sodo sh cuda_xxxxx.run
  • 开始安装之后,需要阅读说明,可以使用Ctrl + C直接阅读完成,或者使用空格键慢慢阅读。然后进行配置,这里说明一下:
(是否同意条款,必须同意才能继续安装)
accept/decline/quit: accept

(这里不要安装驱动,因为已经安装最新的驱动了,否则可能会安装旧版本的显卡驱动,导致重复登录的情况)
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n

(是否安装CUDA 10.2 ,这里必须要安装)
Install the CUDA 10.2 Toolkit?
(y)es/(n)o/(q)uit: y

(安装路径,使用默认,直接回车就行)
Enter Toolkit Location
 [ default is /usr/local/cuda-10.2 ]:  

(1.是否创建软链接,如果创建的话就会创建一个/usr/local/cuda的软连接,实际指向/usr/local/cuda-10.2)
(2.注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本)
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

(不用安装测试,这里的安装测试应该是安装到用户目录下,但实际上在cuda的安装路径,即/usr/local/cuda-10.2下就已经有sample测试文件了)
Install the CUDA 10.2 Samples?
(y)es/(n)o/(q)uit: n

Installing the CUDA Toolkit in /usr/local/cuda-10.2 ...(开始安装)

ubuntu安装cuda/cuDNN/TensorRT_第8张图片ubuntu安装cuda/cuDNN/TensorRT_第9张图片

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-10.2/
Samples:  Installed in /home/cc/

Please make sure that
 -   PATH includes /usr/local/cuda-10.2/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-10.2/lib64, or, add /usr/local/cuda-10.2/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-10.2/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-10.2/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 440.00 is required for CUDA 10.2 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run --silent --driver

Logfile is /var/log/cuda-installer.log

  • 设置环境变量:安装完成之后,可以配置他们的环境变量,在~/.bashrc的最后加上以下配置信息
export CUDA_HOME=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

最后使用命令source ~/.bashrc使它生效。

3.3.测试安装是否成功

  • 可以使用命令nvcc -V查看安装的版本信息:

ubuntu安装cuda/cuDNN/TensorRT_第10张图片
这里可以发现,安装的CUDA版本是10.2,而之前使用nvidia-smi看到的版本是11.4,两个版本并不一样。原因参考:【CUDA】nvcc和nvidia-smi显示的版本不一致? 简单来说,只要nvidia-smi的显示版本大于CUDA版本一般就没有问题。

  • 运行样例测试安装是否成功,执行以下几条命令:
cd /usr/local/cuda-10.2/samples/1_Utilities/deviceQuery
make
./deviceQuery

正常情况下输出如下:

ubuntu安装cuda/cuDNN/TensorRT_第11张图片

4.安装cuDNN

4.1.安装

cuDNN实际上不用安装,就是把头文件和库文件拷贝到CUDA的安装目录下,然后给这些文件读写权限即可。

这里以安装cuDNN=8.1.0,官网下载地址, 官网安装教程

ubuntu安装cuda/cuDNN/TensorRT_第12张图片
ubuntu安装cuda/cuDNN/TensorRT_第13张图片安装步骤就是上面的三条语句

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

4.2.测试安装是否成功

Ubuntu 18.4 查看CUDNN版本

/usr/local/cuda/include目录下有一个cudnn_version.h头文件,这里面就定义了关于cuDNN的版本,内容如下:
ubuntu安装cuda/cuDNN/TensorRT_第14张图片

5.TensorRT安装

5.1.什么是TensorRT

参考:什么是TensorRT

Tensor是一个有助于在NVIDIA图形处理单元(GPU)上高性能推理c++库。它旨在与TesnsorFlow、Caffe、Pytorch以及MXNet等训练框架以互补的方式进行工作,专门致力于在GPU上快速有效地进行网络推理。

如今现有的一些训练框架(例如TensorFlow)已经集成了TensorRT,因此可以将其用于加速框架中的推理。另外,TensorRT可以作为用户应用程序中的库,它包括用于从Caffe,ONNX或TensorFlow导入现有模型的解析器,以及用于以编程方式(C++或Python API)构建模型。

5.2.安装TensorRT

官网下载地址 官网安装教程

这里以TensorRT=7.2.3为例,下载适配CUDA版本的安装包。
ubuntu安装cuda/cuDNN/TensorRT_第15张图片
安装步骤按照官网来进行,同时可以参考这篇博客。
ubuntu安装cuda/cuDNN/TensorRT_第16张图片- 解压下载的安装包,没下面这么复杂,直接解压即可
ubuntu安装cuda/cuDNN/TensorRT_第17张图片

  • 添加环境变量
    ubuntu安装cuda/cuDNN/TensorRT_第18张图片
  • 安装各种whl文件
    ubuntu安装cuda/cuDNN/TensorRT_第19张图片
    ubuntu安装cuda/cuDNN/TensorRT_第20张图片
    问题出现在最后一步,安装onnx-graphsurgeon的时候,报了一大堆错误,内容大致如下:
    ubuntu安装cuda/cuDNN/TensorRT_第21张图片
    最后解决方法是更新pip版本,参考:https://github.com/onnx/onnx/issues/2734
python3 -m pip install --upgrade pip
python3 -m pip install onnx_graphsurgeon-0.2.6-py2.py3-none-any.whl 

5.3.测试

ubuntu安装cuda/cuDNN/TensorRT_第22张图片

  • 最后安装pycuda(官网教程没有,参考博客中有)
    在这里插入图片描述

你可能感兴趣的:(深度学习,linux)