环境总览:
必须按照以下配置!!一模一样!
- Matlab 2021a
- CUDA 11.0(和matlab版本适配)
- CUDNN 8.0.5
- TensorRT 7.2.1
- VS 2017 Release+ X64
- OpenCV3.4.1
- Pthread
右击vs项目名称→生成依赖项→生成自定义,→选择CUDA11.0→确定
文件路径下各文件介绍:
Version 1:
TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\samples\sampleMNIST\
- cwin.cpp tensorrt的c源文件
- realtime.m 实时读数据预测数据的脚本
- realtime-display.m 实时显示的脚本 以上两个脚本的写入,读取文件名需保持一致 测试后需要删除该文件 以免下次测试受影响(qwq
- deepcad_trt.m TensorRT测速以及查看去噪效果程序
Version 2:
TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\samples\sampleMNIST\
- cwin3.cpp tensorrt的c源文件
- noise_test.m cwin函数测试及测速程序
- rt_test.m 实时仿真测试
- 子文件夹:
- results 查看输出结果
- datasets 放入想要预测的图
- model 放入engine文件
- cwin参数介绍:
基本环境配置
Matlab 安装后的配置
系统环境变量添加:
D:\MATLAB\R2021a\runtime\win64
D:\MATLAB\R2021a\bin\win64
D:\MATLAB\R2021a\bin
添加环境变量后一定要重启!!
Matab和c++混合编程(mex)
在这个模式下进行后面的配置
vs2017的项目属性页
VC++可执行文件目录:
D:\MATLAB\R2021a\extern\include
D:\MATLAB\R2021a\bin\win64
D:\MATLAB\R2021a\extern\include\win64
C/C++附加包含目录:
D:\MATLAB\R2021a\extern\include
链接器–常规–附加库目录:
D:\MATLAB\R2021a\extern\lib\win64\microsoft
D:\MATLAB\R2021a\bin\win64
链接器–输入–附加依赖项:
libmx.lib;libmex.lib;libmat.lib;libeng.lib;
在matlab命令行输入mex -setup
选择vc++
TensorRT配置
1.先在官网下载TensorRt
TensorRt官网传送门:https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html
内部人员请解压我发的压缩文件(c源文件位置:TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\samples\sampleMNIST\cwin2.cpp)
2.系统环境变量添加:
xxx\TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\lib
3.和cuda适配
将解压之后的lib文件夹里的dll文件复制到CUDA的安装目录bin/下(CUDA默认安装路径为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\xxx)
4.进入TensorRT的sample文件夹,用VS打开SampleMNIST的测试样例,在项目属性页先对VS进行配置:(vs2017记得调成release+vs编译!!)
VC++可执行文件目录:
xxx\TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\lib
VC++包含目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
库目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64
C/C++常规–附加包含目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
xxx\TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\include
链接器–输入–附加依赖项:
nvinfer.lib;nvinfer_plugin.lib;nvonnxparser.lib;nvparsers.lib;myelin64_1.lib;cudnn.lib;cublas.lib;cudart.lib;nvrtc.lib;
TensortRT的windows实战
pth->onnx
input_name = ['input']
output_name = ['output']
input = Variable(torch.randn(1, 1, 40, 200, 200)).cuda()
torch.onnx.export(model.module, input, 'unet3d_200_40_d.onnx', export_params=True, opset_version=11, do_constant_folding=True,
input_names=input_name, output_names=output_name, verbose=True)
!!注意:每换一台新的环境都需要走下面这个转换过程
onnx->engine
xxx\TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\TensorRT-7.2.1.6\bin\trtexec.exe --onnx=unet3d_200_40.onnx --explicitBatch --saveEngine=trt_fp16_200_40_1.engine --workspace=2000 --fp16
matlab编译cpp程序:
(要把这些lib文件放到和cpp的文件同一个的文件夹下!!然后把调用c函数的m文件也放在该文件夹下,这些在压缩包里都放好了)
mex cwin3.cpp -lcudart.lib -lcublas.lib -lnvinfer.lib -lnvinfer_plugin.lib -lnvparsers.lib -lmyelin64_1.lib -lopencv_world341.lib
matlab直接调cwin3即可
opencv安装配置
安装3.4.1版本,发现资源较多
参考https://blog.csdn.net/betty__/article/details/88866553
配release版本!
上官网下载exe打开得到压缩包
系统环境变量:
...\opencv\build\x64\vc15\bin
先把当前代码的
VC++目录中选择包含目录:
...\opencv\build\include;
...\opencv\build\include\opencv;
...\opencv\build\include\opencv2;
在VC++目录中选择库目录,添加安装的OpenCV的路径:
...\opencv\build\x64\vc15\lib;
在链接器->输入中添加
opencv_world341.lib
ptheard 安装
参考这个链接
在vs2017中点击此键
点击安装(一般是最多人装的)
此时会报错
要在pthread.h中的
#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上
#define HAVE_STRUCT_TIMESPEC