win10 tensorrt安装 踩坑记录

目录

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


tensorrt c++常见网络开源实现:

https://github.com/wang-xinyu/tensorrtx

win10 python tensorrt安装

EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
这边建议你用TensorRT最新版本的 GA release 呢

下载地址:

TensorRT SDK | NVIDIA Developer

需要注册,登录。

选择跟cuda对应的版本:

tensorrt8.4 压缩比比较高,cuda需要11.6,值得试试。

cudnn 版本选择与下载

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

win10 tensorrt安装 踩坑记录_第1张图片


1. 添加环境变量,安装依赖项:

PATH:D:\it\TensorRT-7.1.3.4\lib   

安装依赖项:

pip install cython

安装pycuda:

pycuda安装_AI视觉网奇的博客-CSDN博客

nvcc.exe所在目录加入环境变量:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin


2. 安装uff、graphsurgeon和tensorrt


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


3. 复制tensorrt的库到cuda安装目录

比如:

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

win10 tensorrt安装 踩坑记录_第2张图片

python import报错

1.DLL load failed while importing tensorrt: 找不到指定的程序

解决方法:

看上面第3步, 3. 复制tensorrt的库到cuda安装目录

2.Could not locate zlibwapi.dll. Please make sure it is in your library path

下载预编译版本
http://www.winimage.com/zLibDll/
把 lib 和 dll 文件放到 CUDA 安装目录的 lib 和 bin 文件夹

3.Could not load library cudnn_cnn_infer64_8.dll. Error code 193

是 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

4. TensorRT was linked against cuDNN 8.4.1 but loaded cuDNN 8.2.1

这个报错好像可以忽略

vs项目报错:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    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

win10 tensorrt安装 踩坑记录_第3张图片

但是这个博客不一样,结果相反:

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)"

win10 tensorrt安装 踩坑记录_第4张图片

cuda环境变量:

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 cudnn版本:

查看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

python onnx转tensorrt报错

可以忽略的:

TensorRT was linked against cuBLAS/cuBLAS LT 11.6.3 but loaded cuBLAS/cuBLAS LT 11.4.2

c++推理报错

1.cuda11.3 tensorrt 8.2.18版本报错:

 generated on an incompatible device, expecting compute 7.5 got compute 6.1, please rebuild

1.serializationVersion failed.Version tag does not match

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推理的引擎版本需要一致。

你可能感兴趣的:(cuda,深度学习,pytorch,人工智能)