Fixstars Tech Blog /proc/cpuinfoにアップされた【TensorRTやってみた】シリーズ。
NVIDIAのTensorRT。いろいろと最適化してくれて、推論処理が速くなるんだよね。
ポイントは、(4)のGoogLeNet で性能を検証するの後半にも書いてあるけど、
以下、引用 ・Caffe では各レイヤのカーネルが同期実行されているため、 カーネルの起動と同期待ちコストが非常に重くなっている (半分以上がカーネル起動・同期待ちに費やされている!) ・TensorRT では 各カーネルが非同期で実行されているため、カーネル起動・同期待ちがほとんど発生していない ・コンボリューションと活性化関数の処理が、1.7倍高速化された ・プーリング処理が1.9倍高速化された ・デバイス内のメモリコピーなど、その他の処理時間が3倍以上高速化された
にあるように、カーネルの非同期実行とコンボリューションと活性化関数の融合。
特に、カーネルの非同期実行では、31023から143になったのが大きいですね。0.5%
それからコンボリューションと活性化関数の融合でも40%減。
まー、この2つの手法は、CUDAプログラミングの最適化の王道だからね。