一、准备工作
首先必须准备好以下四个依赖cuda、cudnn、TensorRT和dirent.h
依赖如下:
1.cuda 10.2
download from https://developer.nvidia.com/cuda-10.2-download-archive
下载后直接安装就行了
2.cudnn 7.6
download from https://developer.nvidia.com/zh-cn/cudnn
将cudnn对应文件夹里面的文件放到cuda中去,cuda默认安装地址一般为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2,文件夹名是对应的。
3.TensorRT-7.0.0.11
download from https://developer.nvidia.com/zh-cn/tensorrt
放到一个好找到的地方。
4.dirent.h 放到tensorRT源文件include里面
download from https://github.com/tronkko/dirent
以上2、3、4我会打压缩包放群里面。
二、vs2017的配置
首先打开属性:
在VC++目录中
添加TensorRT的头文件地址和CUDA的头文件地址。
添加TensorRT的库目录地址和CUDA的库目录地址。
在C/C++中
将Yolov5文件夹添加进去。
在链接器-输入中
添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64和D:\TensorRT-7.0.0.11\lib的库文件名称。如下:
myelin64_1.lib;nvinfer.lib;nvinfer_plugin.lib;nvonnxparser.lib;nvparsers.lib;cublas.lib;cublasLt.lib;cuda.lib;cudadevrt.lib;cudart.lib;cudart_static.lib;cudnn.lib;cufft.lib;cufftw.lib;curand.lib;cusolver.lib;cusolverMg.lib;cusparse.lib;nppc.lib;nppial.lib;nppicc.lib;nppicom.lib;nppidei.lib;nppif.lib;nppig.lib;nppim.lib;nppist.lib;nppisu.lib;nppitc.lib;npps.lib;nvblas.lib;nvgraph.lib;nvjpeg.lib;nvml.lib;nvrtc.lib;OpenCL.lib;
添加预编译器定义
_CRT_SECURE_NO_WARNINGS
其他要求
1.以下三个文件必须包含到工程中,其位置在yolov5中。
2.右键MVI_3500_ALG - 生成依赖项 - 生成自定义
把以下这个选项勾上
3.右键yololayer.cu - 属性
将项类型改成 CUDA C++
4.右键MVI_3500_ALG - 属性
在CUDA C/C++中 Common, 生成64位引擎。
在CUDA C/C++中 Host, 按照如下设置:
%(Defines);_WINDOWS;NDEBUG;API_EXPORTS;CMAKE_INTDIR=“Release”
关于推理引擎的说明:
YOLO采用的是wts权重文件,在tensorRT推理过程中需要序列化生成engine文件,而engine文件是GPU框架绑定的,所以针对不同的显卡需要本地序列化一次,我会发布一个exe的脚本。
最后
将生成的engine文件放到字典的目录里面就可以完成推理了。