Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

【TensorRTやってみた】


Fixstars Tech Blog /proc/cpuinfoにアップされた【TensorRTやってみた】シリーズ。


NVIDIAのTensorRT。いろいろと最適化してくれて、推論処理が速くなるんだよね。

ポイントは、(4)のGoogLeNet で性能を検証するの後半にも書いてあるけど、

以下、引用
 ・Caffe では各レイヤのカーネルが同期実行されているため、
  カーネルの起動と同期待ちコストが非常に重くなっている (半分以上がカーネル起動・同期待ちに費やされている!)
 ・TensorRT では 各カーネルが非同期で実行されているため、カーネル起動・同期待ちがほとんど発生していない
 ・コンボリューションと活性化関数の処理が、1.7倍高速化された
 ・プーリング処理が1.9倍高速化された
 ・デバイス内のメモリコピーなど、その他の処理時間が3倍以上高速化された

にあるように、カーネルの非同期実行とコンボリューションと活性化関数の融合。

特に、カーネルの非同期実行では、31023から143になったのが大きいですね。0.5%

それからコンボリューションと活性化関数の融合でも40%減。

まー、この2つの手法は、CUDAプログラミングの最適化の王道だからね。