本文是为了记录安装TensorRT过程中遇到的一些问题。
- 首先进入TensorRT下载页面,选择你要下载的TensorRT版本。
因为TensorRT不同的版本依赖于不同的cuda版本和cudnn版本。所以很多时候我们都是根据我们自己电脑的cuda版本和cudnn版本来决定要下载哪个TensorRT版本。
- 查看cuda版本:
可以看到,我的cuda版本为11.3。 - 查看cudnn版本
网上看的资料都是让你输入下面这条语句:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
或者这条语句:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果你使用这两条语句成功显示了cudnn的版本,那便继续往下走。笔者在使用这两条语句时会出现如下错误:
经过分析,在我的系统里,cudnn文件存在于/usr/include/文件夹下。cd进入/usr/include/文件夹,查看cudnn的版本:
cd /usr/include/
cat cudnn_version.h
可以看到,我的cudnn版本现在为8.2.0。
-
我准备安装 TensorRT8.5,通过TAR包的形式安装。cuda11.0-11.8都可以。下载之后,发现cudnn要求为8.6.0,但是我的cudnn版本为8.2.0。所以要升级cudnn。
-
下载cudnn8.6.0,cudnn的下载页面
下载这个安装包。
具体如何升级cudnn到8.6.0,请参考如下链接:
cudnn升级 -
现在我们的cudnn和cuda都安装到对应的版本上了,开始安装TensorRT。
- 首先解压下载的TensorRT安装包
tar -xzvf TensorRT-8.5.1.7.Linux.x86_64-gnu.cuda-11.8.cudnn8.6.tar.gz
- 添加环境变量
vim ~/.bashrc
export LD_LIBRARY_PATH=/path/TensorRT-8.5.1.7/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/path/TensorRT-8.5.1.7/lib::$LIBRARY_PATH
这里的path换成你自己的TensorRT路径。保存退出后,执行:
source ~/.bashrc
- python调用TensorRT API
进入TensorRT文件夹下的python文件夹,执行以下命令,安装python接口的tensorrt。
pip install ./tensorrt-8.5.1.7-cp38-none-linux_x86_64.whl
这里的cpXX对应的是你的python版本。
- uff组件
进入uff文件夹,安装uff组件。
pip install ./uff-0.6.9-py2.py3-none-any.whl
- 安装graphsurgeon
进入graphsurgeon文件夹,执行以下命令:
pip install ./graphsurgeon-0.4.6-py2.py3-none-any.whl
- 安装onnx_graphsurgeon
进入onnx_graphsurgeon文件夹,执行以下命令:
pip install ./onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
综上我们已经安装了python调用TensorRT的一些库。除此之外,我们还要安装pycuda库,使用pip install安装即可。
- 验证TensorRT是否安装正确,cd进入samples文件夹
cd samples
make -j8
如果环境什么都没出错的话,这里编译是会很顺利的。然后cd进入bin文件夹,
cd ..
cd bin
./sample_onnx_mnist
出现下面的结果就表示安装正确。