TensorRT7ノート(1)

NVIDIAの公式ウェブサイトはtensorRT7.0をリリースしました。モデルサーバーの展開には、tensorRTが非常に優れています。公式ウェブサイトのリンクを最初に置きます。

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

最初にTensorRTを紹介します

TensorRTのコアは、深層学習の高性能C ++推論ライブラリであり、基本的にTensorflow、Caffe、Pytorch、MXNetなどの主流のトレーニングフレームワークに適合しています。

Linuxインストールリファレンス:[TensorRT] tensorRT7.0インストール構成

Windowsインストールリファレンス:Win10 + VS2017環境でのTensorRT7.0のインストールとテスト

1.インストール手順

TensorRTバージョン5.0+ Cuda 10.0 + cuDNN 7.3.1を使用しましたが、TensorRT7.0を試してください。

インストール手順は次のとおりです。

1)公式ウェブサイトからインストールパッケージをダウンロードします:https//developer.nvidia.com/tensorrt

2)インストールパッケージを解凍します

3)対応するインストールディレクトリと対応するbinおよびlibディレクトリをシステムパスマクロ定義に追加します

4)対応するcudaバージョンが配置されているディレクトリとcudaのbinディレクトリがシステムパスにあることを確認します。この手順は以前に実行しました。

2、テスト

TensorRT 7.0に付属のsample_mnistをテストします。正しくコンパイルされますが、実行時に異常終了します。処理は次のとおりです。

1)デバッグ情報(例ではリリースバージョンのみ)を追加し、障害ポイントを特定し、ファイルが見つからないかどうかを確認します。結果はそうではなく、builder-> createBuilderConfig()の呼び出しで無効になります。

2)TensorRT7.0のCudaバージョン要件を確認します。ダウンロードパッケージに必要なバージョンはCuda10.0 + cuDNN7.6なので、cuDNN 7.3.1を対応するバージョン(7.6)にアップグレードします-まだ機能していません

3)グラフィックカードドライバーを最新バージョンに更新します(私のグラフィックカードはGeforce GTX 1650で、NVidia Webサイトからダウンロードします)-まだ機能していません

4)TensorRTのバージョンが高すぎて、多くの環境でサポートされていないかどうかを考慮して、TensorRT 6.0をインストールし、テストします-同じ場所でまだ死んでいます

5)Cudaを10.0から10.2に更新すると、問題は解決します-TensorRT6.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でコンパイルされているはずなので、対応するライブラリを使用してください。TensorRTのcuda10.2バージョンを再ダウンロードした後、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