提示:我在思考后面要不要出opencv的安装教程,思考了一下,可以考虑,这个TensorRT其实更多用于我们使用的边缘计算的设备加速运算中,大家可以根据自己的需求选择是否学习
前言
在比赛过程中我最希望用到的设备就是B01或者Orin nano,这样就可以使用TensorRT进行进一步的模型加速。当然,加速模型的方法不止这一种,但是这是nvidia公司官方支持的,比较好用,让我们来看一下吧
一、TensorRT是什么?
官方解释:
NVIDIA® TensorRT™ 是一个工具生态系统,可供开发者实现高性能深度学习推理。TensorRT 包括推理编译器、运行时和模型优化,可为生产应用提供低延迟和高吞吐量。TensorRT 生态系统包括 TensorRT 编译器、TensorRT-LLM、TensorRT Model Optimizer 和 TensorRT Cloud。
画重点:可为生产应用提供低延迟和高吞吐量。TensorRT 直接集成到 PyTorch以及 Hugging Face 只需一行代码即可将推理速度提高 6 倍。
TensorRT 可以针对边缘、笔记本电脑和台式机以及数据中心的应用优化模型。它为主要的 NVIDIA 解决方案 (例如 NVIDIA TAO、NVIDIA DRIVE、NVIDIA Clara™ 和 NVIDIA JetPack™) 提供支持,并与特定应用的 SDK (例如 NVIDIA NIM™、NVIDIA DeepStream、NVIDIA® Riva、NVIDIA Merlin™、NVIDIA Maxine™、NVIDIA Morpheus 和 NVIDIA Broadcast Engine) 集成。
想要进一步了解相关知识,可以去官网了解:https://developer.nvidia.cn/tensorrt
二、安装步骤
1.选择合适的版本
相比较cudnn,TensorRT对于cuda和cudnn的版本有了进一步的要求,有的tensorrt与cuda和cudnn是强相关的。这一点在边缘计算设备上尤为明显,所以不能单独修改B01的cuda和cudnn版本,但是可以通过某些手段去升级jetpack版本从而升级cudnn和tensorrt版本,这个方法以后会介绍出来。
选择tensorrt版本的方法,看下去你就知道了。
2、安装方法
主体安装
这里直接给出com的链接:https://developer.nvidia.com/tensorrt
直接点击Download Now
tensorrt的最新版本是tensorrt10,一般对应着jetpack6.x,如果你需要使用jetpack6那么你基本上逃不开它,这里我选择安装tensorrt10和8

点击tensorrt10
这里跟下载cudnn的方法类似,我选择10.8GA
GA与EA的区别是
EA是测试版,GA是正式版
看到这里你基本上就明白了两种安装方法的区别了,与cudnn一样的tar版本安装和deb安装的区别。所以这里我就不多赘述deb安装的方法了,会在最后给出安装deb的命令。tensorrt10.8同样有cuda11和cuda12的版本,大家做好区分即可。
我们继续讲述tar版本安装方法
点击链接后,如果你没有登陆账号,就仍然会遇到需要邮箱验证的提示,如果已经登陆了就会自动下载,文件大小4.1G,再次感受到多分配内存的重要。
如果大家不想在火狐里面下载,那么,不知道你是否还记得下载cuda时的wegt命令
我们可以在下载栏中右键复制下载链接,然后在终端中复制并在开头加上wget
wget https://developer.download.nvidia.cn/compute/machine-learning/tensorrt/10.8.0/tars/TensorRT-10.8.0.43.Linux.x86_64-gnu.cuda-11.8.tar.gz?t=eyJscyI6InJlZiIsImxzZCI6IlJFRi1kZXZlbG9wZXIubnZpZGlhLmNuLyJ9
这里还要说明,在终端中wegt命令下载地址为当前终端地址
文件名中的11.8仍然是最大支持版本,仍然可以向下兼容,11.1-11.8均可
解压命令,需要一点时间,请耐心等待
tar -xzvf TensorRT-10.8.0.43.Linux.x86_64-gnu.cuda-11.8.tar.gz
此时,tensorrt就已经安装好了,是的,你没有看错,tensorrt安装完毕了。不过,这里需要稍稍注意一下,tensorrt尽量放到一个不容易修改的地方,以防cmake或者make后期编译找不到,我选择放在cuda的同级目录下
sudo mv TensorRT-10.8.0.43 /usr/local/
此时我们只需要将tensorrt路径写入.bashrc即可
gedit ~/.bashrc
打开文本编辑器写入以下,需要根据自己的情况去更改哦~
#TensorRT10.8
export TENSORRT_DIR=/usr/local/TensorRT-10.8.0.43
export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
export PATH=$TENSORRT_DIR/bin:$PATH
最后更新`
source ~/.bashrc
sudo ldconfig
`
如何测试是否正确安装了呢?tensorrt自带有测试脚本,让我们使用一下。
此时你已经完成了c++的安装,让我们去完成其他部件的安装吧~
让我们找到/usr/local/TensorRT-10.8.0.43/samples/sampleOnnxMNIST
终端进入该文件夹,进行cpp编译
sudo make clean
sudo make
这里说没有设置CUDA_INSTALL_DIR,TRT_LIB_DIR所以使用默认的路径,如果你安装一个cuda可以直接使用,我们有两个,所以设置一下。…/的意思是当前目录的上一个目录,./的意思是当前文件夹,相信在此之前你肯定已经明白了这些符号的意思,希望我此时的解释是多余的。
让我们之间输入编辑命令
sudo gedit ../Makefile.config
修改完毕,重新执行上面两行命令

这里提示我们编译成功的可执行文件在tensorrt目录下的bin文件夹中,让我们进入
cd ../../bin
此时让我们查看一下当前目录下的文件,使用ls命令
执行测试文件
./sample_onnx_mnist
使用sudo会报错
这是因为我们并没有在系统级别的共享库中添加tensorrt的共享库路径,并且测试脚本不存在权限的问题,所以可以直接执行

手写数字测试正确,说明tensorrt安装没问题哦~
其他部件安装
Python3支持
tensorrt10.8不支持python2。这个时候我们需要查看一下我们的python3版本,终端输入python3
ubuntu20.04默认python3版本为3.8,按ctrl+z退出
让我们进入/usr/local/TensorRT-10.8.0.43/python
然后安装python3的pip支持,没有安装的话会报Command 'pip3' not found
pip命令相信大家肯定去学习了
sudo apt install python3-pip
然后安装python3.8对应版本,这里有三个包,我们一行命令全部安装
pip install tensorrt*-cp38-none-linux_x86_64.whl
此时就完成了python3包的支持,但是仅仅是对系统的python3.8的支持,对于后续可能使用的虚拟python环境并不支持。关于虚拟环境的东西我后续会说的。
剩下的三个支持在tensorrt10中已经集成了,这里我使用tensorrt8来演示,最后我选择cuda11.6使用tensorrt8,cuda12.2使用tensorrt10,大家根据自己的需求去做即可。
这里就要说一下版本共存问题了,因为后续部署起来基本是使用c++版本tensorrt,所以只需要去修改.bashrc中的路径即可实现版本更换。但是python版本无法进行共存,如果同时支持的话可能会更换掉,一般我不用python支持,所以看大家自己使用了
UFF Converte支持
用于转换TensorFlow模型。
大家应该进行pip换源了吧~,不然会很慢哦
这些警告表明你安装的某些工具(如 f2py、convert-to-uff)的脚本被放在了 ~/.local/bin目录下,但该目录未包含在系统的 PATH环境变量中,不想看到警告的话,使用写入命令
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
别忘了更新哦,source ~/.bashrc
GraphSurgeon
用于操作TensorFlow计算图

ONNX GraphSurgeon
用于操作ONNX模型

3、deb安装方法
deb安装的tensorrt会被系统优先使用,如果你只安装了一个版本,那你以后使用起来会非常方便,之前也说过,deb安装对于单版本来说是非常推荐的。但是如果你安装了两个版本,还是建议你使用tar安装,并使用环境变量去进行版本切换。
deb安装tensorrt需要保证cuda是deb安装的
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2004-10.8.0-cuda-12.8_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2004-10.8.0-cuda-12.8/nv-tensorrt-local-CFDE313F-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install tensorrt
会占据更大的空间~

安装验证
dpkg-query -W tensorrt
实测也是可用的(学长把系统重装了一下,测试确实没问题,可以使用,但是前提是cuda是deb安装的哈)

总结
tensorrt是我们在jetson设备上部署和优化模型的重要手段,在实际使用中我们一般只会使用c++版本,而不会使用python,所以聪明的你应该学会了c++吧~。如果你还有别的问题或者其他软件的安装部署,请在评论区留言,我们下次见~

1952

被折叠的 条评论
为什么被折叠?



