目录
tensorrt c++常见网络开源实现:
win10 python tensorrt安装
cudnn下载
1. 添加环境变量,安装依赖项:
安装依赖项:
nvcc.exe所在目录加入环境变量:
2. 安装uff、graphsurgeon和tensorrt
3. 复制tensorrt的库到cuda安装目录
python import报错
1.DLL load failed while importing tensorrt: 找不到指定的程序
2.Could not locate zlibwapi.dll. Please make sure it is in your library path
3.Could not load library cudnn_cnn_infer64_8.dll. Error code 193
4. TensorRT was linked against cuDNN 8.4.1 but loaded cuDNN 8.2.1
vs项目报错:
cuda环境变量:
查看cuda cudnn版本:
python onnx转tensorrt报错
c++推理报错
1.cuda11.3 tensorrt 8.2.18版本报错:
1.serializationVersion failed.Version tag does not match
https://github.com/wang-xinyu/tensorrtx
EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
这边建议你用TensorRT最新版本的 GA release 呢
下载地址:
TensorRT SDK | NVIDIA Developer
需要注册,登录。
选择跟cuda对应的版本:
tensorrt8.4 压缩比比较高,cuda需要11.6,值得试试。
cuDNN下载网址:https://developer.nvidia.com/rdp/cudnn-download
选择历史版本进行下载
下面两个版本都报错:
cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive
cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive
cudnn-windows-x86_64-8.5.0.96_cuda11-archive
cudnn-windows-x86_64-8.3.3.40_cuda11.5-archive
转trt模型时报错:
Could not load library cudnn_cnn_infer64_8.dll. Error code 193
成功的组合:
1. cuda11.3 与 TensorRT-8.4.1.5.Windows10.x86_64.cuda-11.6.cudnn8.4
这个版本生成的fp16模型更小,推理时间更稳定。
2. cuda11.3 与 TensorRT-8.2.1.8.Windows10.x86_64.cuda-11.4.cudnn8.2
cudnn 是8.2.1版本。
应该是成功了。
tensorrt版本:
TensorRT-8.4.1.5.Windows10.x86_64.cuda-11.6.cudnn8.4
我测试用的8.2.18 cuda11.3
PATH:D:\it\TensorRT-7.1.3.4\lib
pip install cython
安装pycuda:
pycuda安装_AI视觉网奇的博客-CSDN博客
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin
cd D:\Software\TensorRT-7.1.3.4\graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
cd ../uff
pip install uff-0.6.9-py2.py3-none-any.whl
cd ../python
pip install tensorrt---xxx.whl
比如:
D:\BaiduNetdiskDownload\TensorRT-8.4.1.5.Windows10.x86_64.cuda-11.6.cudnn8.4\lib
dll拷贝到:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin
lib拷贝到:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib
解决方法:
看上面第3步, 3. 复制tensorrt的库到cuda安装目录
下载预编译版本
http://www.winimage.com/zLibDll/
把 lib 和 dll 文件放到 CUDA 安装目录的 lib 和 bin 文件夹
是 cudnn 版本问题
原来安装了 8.4.0.27,版本太高了
下载了 cudnn-11.4-windows-x64-v8.2.4.15.zip 解压到 cuda 对应的文件夹,运行成功
下载地址
https://developer.nvidia.com/rdp/cudnn-archive
原文链接:https://blog.csdn.net/qq_42067550/article/details/126035184
这个报错好像可以忽略
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2039 “istream_iterator”: 不是“std”的成员 NeuroDetectionV1 f:\project\jushi\fastertest\include\common.hpp 708
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB3721 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_30,code=\"sm_30,compute_30\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static --extended-lambda -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Fdx64\Release\vc141.pdb /FS /Zi /MD " -o x64\Release\boxPooler.cu.obj "F:\project\jushi\fastertest\cu\boxPooler.cu"”已退出,返回代码为 1。 NeuroDetectionV1 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 11.0.targets 772
解决方法:
去掉:compute_30,sm_30
但是这个博客不一样,结果相反:
VS2017 +CUDA11.0配置CUDA应用程序,成功编译但结果不正确解决方案_微凉的衣柜的博客-CSDN博客
报错1:
IBuilderConfig* config = builder->createBuilderConfig();
原因:TensorRT的动态库dll不对,比如把XXX \TensorRT-7.2.3.4\lib的dll拷贝到exe所在目录,报错就没有了。
报错2:
_iExecutionContext报错:
_modelParam._iExecutionContext = _modelParam._iCudaEngine->createExecutionContext();
报错3:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB3721 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc.exe" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64" -x cu -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static --extended-lambda -DWIN32 -DWIN64 -DNDEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Fdx64\Release\vc141.pdb /FS /Zi /MD " -o x64\Release\boxPooler.cu.obj "F:\project\jushi\fastertest\cu\boxPooler.cu"”已退出,返回代码为 1。 NeuroDetectionV1 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 10.1.targets 764
原因:cuda环境变量和vs中配置的不一致,
vs中的:
# (Approximate command-line. Settings inherited from host are not visible below.)
# (Please see the output window after a build for the full command-line)
# Driver API (NVCC Compilation Type is .cubin, .gpu, or .ptx)
set CUDAFE_FLAGS=--sdk_dir "C:\Program Files (x86)\Windows Kits\10\"
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\bin\nvcc.exe" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64" -x cu --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -o x64\Release\%(Filename)%(Extension).obj "%(FullPath)"
# Runtime API (NVCC Compilation Type is hybrid object or .c file)
set CUDAFE_FLAGS=--sdk_dir "C:\Program Files (x86)\Windows Kits\10\"
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\bin\nvcc.exe" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64" -x cu --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -Xcompiler "/EHsc /nologo /FS /Zi " -o x64\Release\%(Filename)%(Extension).obj "%(FullPath)"
path中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp
报错:
LNK1181 无法打开输入文件“cudart_static.lib”
查看cuda版本:
命令行执行 nvcc -V
查看 cuDNN 版本:
进入 CUDA 的安装目录查看文件 cudnn_version.h :
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include\cudnn_version.h
如下所示,cuDNN 版本为 8.1.1 :
原文链接:https://blog.csdn.net/c_0934/article/details/121004165
可以忽略的:
TensorRT was linked against cuBLAS/cuBLAS LT 11.6.3 but loaded cuBLAS/cuBLAS LT 11.4.2
generated on an incompatible device, expecting compute 7.5 got compute 6.1, please rebuild
Error Code 1: Serialization (Serialization assertion stdVersionRead == serializationVersion failed.Version tag does not match. Note: Current Version: 205, Serialized Engine Version: 213)
cuda11.3版本,选择了一个:
TensorRT-8.0.3.4.Windows10.x86_64.cuda-11.3.cudnn8.2.zip
python tensorrt换成8.2.18,报错依旧;
serializationVersion failed.Version tag does not match. Note: Current Version: 205, Serialized Engine Version: 213
解决方法:生成tensorrt 引擎和tensorrt推理的引擎版本需要一致。