配置TensorRT环境需要配置CUDA、CUDNN、英伟达显卡驱动
- 安装顺序是先英伟达显卡驱动,CUDA,CUDNN,如果已经安装就可以跳过
可以用命令查询CUDA和英伟达驱动版本,下载对应的CUDNN:
nvidia-smi
类似这样,如图我的显卡驱动版本为515.65.01,CUDA版本为11.7
安装CUDNN
- 到官网下载对应CUDA版本的CUDNN,链接如下:
下载需要英伟达账号:
- 下载对应的cudnn版本,这里附上tar版本的cudnn安装方式。这个版本适配CUDA11.x
tar -xvf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz
cd cudnn-linux-x86_64-8.5.0.96_cuda11-archive/include/
sudo cp cudnn*.h /usr/local/cuda/include
cd ../lib/
sudo cp libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
实际上就是把cudnn包里面的include和lib分别复制添加到cuda的文件中。
安装TensorRT
TensorRT下载网址:
这里的版本适配CUDA11.0-11.7,TensorRT8.4,Tar版本安装
tar zxf TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
sudo mv TensorRT-8.4.1.5 /opt
sudo gedit ~/.bashrc
添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/TensorRT-8.4.1.5/lib
source ~/.bashrc
复制TensorRT目录下 lib、include文件夹到系统文件夹(或者将这两个文件夹路径添加到.bashrc文件中)
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
安装python相关依赖(有需要安装),我的python环境是3.9,注意安装对应版本的.whl,在文件夹下有各种版本的whl
cd python
conda activate Wheel
pip install pycuda
pip install tensorrt-8.4.1.5-cp39-none-linux_x86_64.whl
完成上面的步骤之后就可以使用TensorRT转化部署权重文件了,可以从github上拉一下yolo的代码,利用里面的export代码验证安装是否成功,下面是yolo运行export的命令:
python export.py --weights yolov5s.pt --include onnx engine --device 0
看到报出export success即为转化配置成功,得到onnx和engine后缀的转化权重