一、安装步骤
我以前用的是TensorRT 5.0版+Cuda 10.0 + cuDNN 7.3.1,现试一下TensorRT 7.0
安装步骤如下:
1)从官网下载安装包:https://developer.nvidia.com/tensorrt
2)解压安装包
3)将相应的安装目录和对应的 bin, lib目录加入系统path宏定义
4)确保相应的cuda版本所在目录及cuda的bin目录在系统path中,这一步我以前已做好
二、测试
测试TensorRT 7.0自带的例子sample_mnist,编译正确,但运行时非正常退出,处置如下:
1)加入debug信息(例子中只有Release版),定位到故障点,检查是否找不到文件等情况——结果不是,死在builder->createBuilderConfig()这个调用上
2)检查TensorRT 7.0对Cuda版本要求,我下载包要求的版本是:Cuda10.0+cuDNN7.6,因此将cuDNN 7.3.1升级到相应版本(7.6)——仍不行
3)更新显示卡驱动程序至最新版(我的显示卡为Geforce GTX 1650, 到NVidia网站下载)——仍不行
4) 考虑到是否TensorRT版本太高,许多环境还不支持,安装TensorRT 6.0并测试 ——仍死在同一地方
5)将Cuda 从10.0更新至10.2版,问题解决——TensorRT 6.0 & 7.0 均正确
6) 用cuDNN 7.3.1版时,运行会有警告,但结果仍正确。警告内容如下:
将cuDNN版本更新到7.6.4后警告消失。
运行结果如下:
7)虽然运行结果正确,但观察程序运行过程中所加载的DLL,发现同时加载了cuda10.0和cuda10.2的DLL库。打开程序链接提示信息,在程序链接过程中确实只加载了cuda10.2的lib库。应该是相应的TensorRT版本是在cuda10.0下编译的,因此要使用相应的库。重新下载cuda10.2版本的TensorRT后,即不再加载cuda10.0的库。
三、结论
1)这里有一个坑:我下载的版本是 TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.0.cudnn7.6.zip(如下图), 对应的应是cuda10.0版,但cuda10.0并不支持,需要cuda 10.2以上(cuda 10.1未测试)
2)我这里为了偷懒(直接使用已有的cuda10.0)走了许多弯路。建议需要用TensorRT 7.0的用户直接使用与cuda10.2相应的版本。