一、参考资料
TensorRT下载TensorRT文档Debian Installation使用 deb 包的方式安装 TensorRT
二、测试环境
Environment
Operating System + Version: Ubuntu + 16.04
TensorRT Version: 7.1.3.4
GPU Type: GeForce GTX1650,4GB
Nvidia Driver Version: 470.63.01
CUDA Version: 11.0.207
CUDNN Version: 8.0.5
TensorRT:7.1.3.4
Python Version (if applicable): 3.7.3
PyTorch Version (if applicable): 1.3.0+cu100
torchvision:0.4.1+cu100
Anaconda Version:4.10.3
gcc:7.5.0
g++:7.5.0
三、安装 TensorRT
0. 重要说明
- 如果TensorRT以deb方式安装,则CUDA、cuDNN也需要以deb方式安装,否则报错。
- 以deb方式安装TensorRT,不支持多版本管理,推荐使用tar方式安装TensorRT。详细步骤,请参考另一篇博客:【Ubuntu版】TensorRT安装教程(tar包方式)
1. 准备工作
本文以 TensorRT 7.1.3.4
为例,详细介绍以deb方式安装 tensorrt。
1.1 安装Python
推荐安装anconda虚拟环境,通过conda管理python版本。详细步骤,请参考另一篇博客:Anaconda在Ubuntu下的安装与简单使用
conda create -n xxx python=3.7.0
conda activate xxx
1.2 安装CUDA和cuDNN
安装CUDA 11.0,安装cuDNN 8.0.5。
注意CUDA与cuDNN版本对齐。详细步骤,请参考以下博客:
Ubuntu下CUDA的安装及配置(run方式)Ubuntu下CUDA的卸载以及安装(deb方式和run方式)
2. 下载TensorRT
根据CUDA版本,下载对应版本的TensorRT deb软件包,以 nv-tensorrt-repo-ubuntu1604-cuda11.0-trt7.1.3.4-ga-20200617_1-1_amd64.deb 为例。
3. 安装deb软件包(本地)
解压deb包,默认解压路径为 /var
:
sudo dpkg --install nv-tensorrt-repo-ubuntu1604-cuda11.0-trt7.1.3.4-ga-20200617_1-1_amd64.deb
添加本地仓库源密钥:
sudo cp /var/nv-tensorrt-local-repo-ubuntu1604-cuda11.0/*-keyring.gpg /usr/share/keyrings/
或者
sudo apt-key add /var/nv-tensorrt-local-repo-ubuntu1604-cuda11.0/7fa2af80.pub
# 更新源信息:
sudo apt-get update
添加本地仓库的源秘钥,我们安装的时候会把刚刚解包好的目录作为一个本地源,从那里安装,就不是像一般用 apt 命令安装的时候一样,从网络源下载了。添加完成后可以从图形界面的 “软件和更新” -> “其他软件”里面看到,弄错了可以从这里删掉。
安装tensorrt:
sudo apt-get install tensorrt
4. 安装 TensorRT Python
4.1 安装tensorrt
python3 -m pip install numpy
sudo apt-get install python3-libnvinfer-dev
4.2 安装 onnx-graphsurgeon
onnx-graphsurgeon 用于修改 onnx 图。
python3 -m pip install numpy onnx
sudo apt-get install onnx-graphsurgeon
5. 验证安装
dpkg-query -W tensorrt
或者
dpkg --list | grep tensorrt
输出结果:
ii graphsurgeon-tf 8.2.4-1+cuda11.4 amd64 GraphSurgeon for TensorRT package
ii libnvinfer-bin 8.2.4-1+cuda11.4 amd64 TensorRT binaries
ii libnvinfer-dev 8.2.4-1+cuda11.4 amd64 TensorRT development libraries and headers
ii libnvinfer-doc 8.2.4-1+cuda11.4 all TensorRT documentation
ii libnvinfer-plugin-dev 8.2.4-1+cuda11.4 amd64 TensorRT plugin libraries
...
...
四、FAQ
Q:安装CUDA的方式和安装TensorRT的方式不同
乌班图 18.04 tensorRT安装踩坑
下列软件包有未满足的依赖关系:
tensorrt : 依赖: libnvinfer7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-plugin7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvonnxparsers7 (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-bin (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-plugin-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvonnxparsers-dev (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-samples (= 7.0.0-1+cuda10.0) 但是它将不会被安装
依赖: libnvinfer-doc (= 7.0.0-1+cuda10.0) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
错误原因:如果安装tensorRT采用deb包安装,那么CUDA也必须采用deb包安装。
解决方法:卸载CUDA,以deb方式安装CUDA。
Q:python版本与tensorRT不匹配
ERROR: tensorrt-7.2.3.4-cp37-none-linux_x86_64.whl is not a supported wheel on this platform
错误原因:python版本不一致。
解决方法:创建新的虚拟环境,指定python版本,重新安装tensorRT Python API。