Ubuntu安装CUDA工具包、cuDNN、TensorRT

发布时间 2023-06-02 23:26:41作者: XnobodyT

简介一下这三个东西:

CUDA:是一种针对支持 CUDA 功能的 GPU(图形处理器)的 C 语言开发环境。

cuDNN:是GPU加速的用于深度神经网络的原语库。cuDNN为标准例程提供了高度优化的实现,例如向前和向后卷积,池化,规范化和激活层。

TensorRT:是nvidia家的一款高性能深度学习推理SDK。此SDK包含深度学习推理优化器和运行环境,可为深度学习推理应用提供低延迟和高吞吐量。在推理过程中,基于TensorRT的应用程序比仅仅使用CPU作为平台的应用程序要快40倍。

### 一、安装CUDA

#### 1.卸载已安装的NVIDIA驱动

安装CUDA工具包时,如果系统中有已安装过的驱动,则会无法顺利安装,所以先看一下系统是否已经安装过NVIDIA驱动

用如下命令进行查看已安装的驱动

```
dpkg -l | grep nvidia
```

如果存在已安装的驱动,用如下命令进行卸载

```
sudo systemctl stop nvidia*
sudo apt-get remove --purge '^nvidia-.*'
sudo apt-get autoremove
sudo rm /etc/X11/xorg.conf
sudo reboot
```

#### 2. 安装CUDA工具包

首先需要得知你的显卡适配什么版本的工具包,打开你的cmd (由于你的驱动已经卸载,ubuntu下之后的命令无法使用,这里建议切换到Windows系统)

```
nvidia-smi
```

会显示你适配的CUDA版本,这里我的系统适配11.6。所以之后的安装包我以11.6为例

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/647207ee1cab2.png)

进入[NVIDIA官网](https://developer.nvidia.com/cuda-toolkit-archive)下载

![](https://img01.anzhiy.cn/useruploads/163/2023/05/24/646e297c5593e.png)

选取合适的版本进行下载即可,我这里的命令是

```
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.runsudo sh cuda_11.6.0_510.39.01_linux.run
```

选择accept

![](https://img-blog.csdnimg.cn/ae1626a938c943e48b8da82ad5360a98.png#pic_center)

 

选择install

![](https://img01.anzhiy.cn/useruploads/163/2023/05/24/646e297c3f747.png)

#### 3. 配置环境变量

```
vim ~/.bashrc
```

在最后添加如下两行

```
export PATH=/usr/local/cuda-11.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH
```

#### 4.验证

最后验证一下是否正确安装

```
nvcc --version
```

![](https://img01.anzhiy.cn/useruploads/163/2023/05/24/646e297c3f747.png)

### 二、安装cuDNN

#### 1.安装cuDNN包

来到我们的[官网](https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-111)

选择合适的CUDA版本下载安装包

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/647207efbfbcc.png)

#### 2. 安装cuDNN

(1)先将安装包解压缩,可以使用Tab键自动补全压缩包名称。(如果下载的是别的类型安装包可以参考[官方文档](https://developer.nvidia.com/nvidia-tensorrt-download))

```
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
```

(2)将cuDNN文件夹下的文件复制到CUDA安装目录下

```
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
```

#### 3.验证

```
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
```

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/64720a1fc80d6.png)

这就OK了

### 三、安装TensorRT

#### 1.安装TensorRT包

来到我们的[下载页面](https://developer.nvidia.com/tensorrt)

这里你先要注册一个账号,具体就不细说了,注册完可以看到这个界面

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/647207efc842b.png)

选择下载与自身系统和CUDA版本适配的包,这里注意要下与自身设备匹配格式的安装,比如我需要的是x86_64,一开始下载了arm格式的,出现了很多问题,浪费了时间。安装包很大,注意一下网络的稳定性。

#### 2.安装TensorRT

```
tar -zxvf TensorRT-8.4.1.5.Ubuntu-20.04.aarch64-gnu.cuda-11.6.cudnn8.4.tar.gz
```

移动TensorRT文件夹到/usr/local

```
sudo mv TensorRT-8.6.1.6 /usr/local
```

#### 3.配置环境变量

```
vim ~/.bashrc
```

最后添加一下内容

```
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.6.1.6/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT-8.6.1.6/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT-8.6.1.6/include
```

#### 4.验证

进入下面命令指定的文件夹

```
cd /usr/local/TensorRT-8.6.1.6/samples/sampleOnnxMNIST/
```

编译

```
sudo make
```

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/647207ef665d9.png)

进入bin文件夹,运行刚刚生成的可执行文件

```
cd ../../bin
./sample_onnx_minst
```

 

 

![](https://img01.anzhiy.cn/useruploads/163/2023/05/27/647207efac27f.png)

这样就算成功了