本教程基于ubuntu20.04,默认安装好了nVidia驱动、cuda版本、cudnn版本,选择与之匹配的Tensorrt安装
cuda版本: 11.4
cudnn版本: cat /usr/local/cuda/include/cudnn_version.h, cudnn版本为8.2.4
1 TensorRT安装
下面分几种方法尝试安装tensorrt
方法一:使用 pip 进行安装
pip install tensorrt==8.6.1
我这边安装失败
方法二:下载 deb 文件进行安装
os="ubuntuxx04"
tag="8.x.x-cuda-x.x"
sudo dpkg -i nv-tensorrt-local-repo-${os}-${tag}_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-${os}-${tag}/*-keyring.gpg /usr/share/keyrings/
sudo apt-get update sudo apt-get install tensorrt
我这边同样没安装成功
方法三:使用 tar 文件进行安装(推荐)
推荐使用这种方法进行安装,成功率较高
去官网下载对应的版本:developer.nvidia.com/tensorrt-download
下载好之后
tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.8.tar.gz # 解压文件
# 将lib添加到环境变量里面
vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./TensorRT-8.6.1.6/lib
source ~/.bashrc
# 或 直接将 TensorRT-8.6.1.6/lib 添加到 cuda/lib64 里面
cp -r ./lib/* /usr/local/cuda/lib64/
# 安装python的包
cd TensorRT-8.6.1.6/python
# 我这里conda虚拟环境是python38,所以我选择这个whl文件安装
pip install tensorrt-8.6.1-cp38-none-linux_x86_64.whl
安装好之后验证
# 验证是否安装成功:
python
>>>import tensorrt
>>>print(tensorrt.__version__)
>>>assert tensorrt.Builder(tensorrt.Logger())
2 TensorRT使用
我这边的使用的流程是:pytorch -> onnx -> tensorrt
2.1 pytorch转onnx
2.2 onnx转tensorrt
Ubuntu使用tar安装后使用 TensorrtRT-8.6.1.6/bin/trtexec 文件生成 tensorrt 模型文件
将trtexec添加到环境变量中,vim ~/.bashr
export PATH=/XXX/TensorRT-8.6.1.6.Linux.x86_64-gpu.cuda-11.8/TensorRT-8.6.1.6/bin:${PATH}
这样trtexec就可以在任意终端使用了,使用如下指令将onnx转换为.trt
./trtexec --onnx=model.onnx --saveEngine=model.trt --fp16 --workspace=16 --shapes=input:2x3x224x224
其中的参数:
–fp16:是否使用fp16
–shapes:输入的大小。tensorrt支持 动态batch 设置,感兴趣可以尝试