TensorRT7笔记(一)

NVIDIA官网发布了tensorRT 7.0, 对于模型服务器部署来说,tensorRT是真的香啊。先放官网链接。

https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html

先介绍一下TensorRT

TensorRT的核心就是一个深度学习的高性能C++的推理库, 基本适配主流的训练框架,如Tensorflow, Caffe, Pytorch, MXNet。

Linux安装参考:【TensorRT】tensorRT 7.0的安装配置

Windows安装参考:Win10+VS2017环境下TensorRT 7.0的安装与测试

一、安装步骤

我以前用的是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的库。

上面仅供参考,下面是实际操作:

从下载地址找到自己想要下载的版本下载。

下载地址:https://developer.nvidia.com/nvidia-tensorrt-7x-download

开发文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html

下载完TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.0.cudnn7.6.zip解压,然后使用vs2017打开sample_mnist.sln(因为使用了vc141,vs2015默认的是vc140,vs2017默认的是vc141,所以使用vs2017打开项目,否则编译不通过。)

由于我之前已经安装过cuda10.0和cudnn7.6.5,可以直接使用。因为我也安装了cuda10.2和cudnn7.6.5,所以查了一下编译后的依赖,依赖的是cuda10.2。毕竟才开始用vs2017,不知道cuda是在哪里配置的,vs2015可以直接配置使用哪个cuda,vs2017没有找到在哪里配置。

>dumpbin /dependents sample_mnist.exe
Microsoft (R) COFF/PE Dumper Version 14.16.27042.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file sample_mnist.exe

File Type: EXECUTABLE IMAGE

  Image has the following dependencies:

    nvinfer.dll
    nvparsers.dll
    cudart64_102.dll
    MSVCP140.dll
    VCRUNTIME140.dll
    api-ms-win-crt-runtime-l1-1-0.dll
    api-ms-win-crt-heap-l1-1-0.dll
    api-ms-win-crt-utility-l1-1-0.dll
    api-ms-win-crt-convert-l1-1-0.dll
    api-ms-win-crt-stdio-l1-1-0.dll
    api-ms-win-crt-filesystem-l1-1-0.dll
    api-ms-win-crt-time-l1-1-0.dll
    api-ms-win-crt-math-l1-1-0.dll
    api-ms-win-crt-environment-l1-1-0.dll
    api-ms-win-crt-string-l1-1-0.dll
    api-ms-win-crt-locale-l1-1-0.dll
    KERNEL32.dll

1、编译后在TensorRT-7.0.0.11\bin目录下生成sample_mnist.exe。

2、将TensorRT-7.0.0.11\lib目录下的动态库拷贝到TensorRT-7.0.0.11\bin目录下。

3、下载mnist数据:打开powershell在TensorRT-7.0.0.11\data\mnist目录下执行 

 python .\download_pgms.py

4、在powershell下,退回到根目录\TensorRT-7.0.0.11文件夹下,执行程序:

 > .\bin\sample_mnist.exe
&&&& RUNNING TensorRT.sample_mnist # D:\Program Files\TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.0.cudnn7.6\TensorRT-7.0.0.11\bin\sample_mnist.exe
[09/24/2020-22:13:31] [I] Building and running a GPU inference engine for MNIST
[09/24/2020-22:13:33] [I] [TRT] Detected 1 inputs and 1 output network tensors.
[09/24/2020-22:13:33] [W] [TRT] Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles
[09/24/2020-22:13:33] [I] Input:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@#=.  +*=#@@@@@@@
@@@@@@@@@@@*   :.   -@@@@@@@
@@@@@@@@@@#  :#@@:  +@@@@@@@
@@@@@@@@@*  :@@@*  .@@@@@@@@
@@@@@@@@=  =@@@@.  *@@@@@@@@
@@@@@@@=  -@@@@*  =@@@@@@@@@
@@@@@@@  -@@@%:  -@@@@@@@@@@
@@@@@@%  %%+:    *@@@@@@@@@@
@@@@@@@      ..  @@@@@@@@@@@
@@@@@@@#  .=%%: =@@@@@@@@@@@
@@@@@@@@@@@@@#  +@@@@@@@@@@@
@@@@@@@@@@@@@#  @@@@@@@@@@@@
@@@@@@@@@@@@@@  @@@@@@@@@@@@
@@@@@@@@@@@@@#  @@@@@@@@@@@@
@@@@@@@@@@@@@+  @@@@@@@@@@@@
@@@@@@@@@@@@@%  @@@@@@@@@@@@
@@@@@@@@@@@@@@. #@@@@@@@@@@@
@@@@@@@@@@@@@@* :%@@@@@@@@@@
@@@@@@@@@@@@@@@: -@@@@@@@@@@
@@@@@@@@@@@@@@@@= %@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@

[09/24/2020-22:13:33] [I] Output:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9: **********

&&&& PASSED TensorRT.sample_mnist # D:\Program Files\TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.0.cudnn7.6\TensorRT-7.0.0.11\bin\sample_mnist.exe

猜你喜欢

转载自blog.csdn.net/juluwangriyue/article/details/108773330
今日推荐