【TensorRTやってみた】(1): TensorRT とは何か?

ソリューション事業部の遠藤です。

巷で話題のディープラーニングのモデルを動かすには、大きく分けて学習と推論の2つのフェーズがあります。実製品でディープラーニングを適用しようとした場合、基本的には2つのフェーズのうちの推論が動きます。したがって、推論の高速化はディープラーニングを適用するにあたって非常に重要なテーマです。

今回より4回にわたって、推論の高速化に効果のあるディープラーニング推論ライブラリの TensorRT を紹介します。

今回は第1回ということで、TensorRT の概要をまとめます。

TensorRT とは?

TensorRT は、NVIDIA製の高性能ディープラーニング推論最適化・実行ライブラリです。TensorRT を用いるとネットワークが最適化され、低レイテンシ・高スループットの推論を実現することができます。

TensorRT は具体的に、以下のような最適化・高速化をネットワークに対し適用します。

  • Layer & Tensor Fusion: Convolution:バイアス加算+ReLU などといった複数レイヤにまたがる処理を、をまとめて1レイヤで計算するように最適化
  • FP16 and INT8 Precision Calibration: FP32 に比べてモデルサイズとメモリ使用量の削減、および演算器の並列利用による高速化
  • Kernel Auto-Tuning: カーネルサイズ等に合わせてチューニングされたカーネルの利用による高速化
  • Dynamic Tensor Memory: メモリの利用を最適化
  • Multi Stream Execution: 複数のストリームで推論を並列に実行することで最適化

TensorRT で利用可能なレイヤ

TensorRT で利用可能なニューラルネットのレイヤは、以下のとおりです。一般的なニューラルネットに必要なレイヤは、一通りサポートされています。

  • activation (ReLU, tanh, sigmoid)
  • concatination
  • convolution / deconvolution
  • element wise
  • flatten
  • Fully Connected
  • LRN(正規化)
  • Padding
  • Plugin
  • Pooling (max & average)
  • scale
  • shuffle
  • softmax
  • squeeze
  • unary (exp, log, sqrt, recip, abs, neg)

TensorRT をサポートする環境

TensorRT の公式サイトによると、以下の環境がサポートされています。

  • Tesla (データセンタ向け)
  • Jetson シリーズ (組込み向け)
  • DRIVE シリーズ (車載向け)

GeForce は残念ながら公式にはサポートされていません。

以上で、TensorRT の紹介を終わります。次回は、TensorRT の導入方法について説明したいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.