TensorRTのお話
紹介
NVIDIA社作成の推論を最適化するツールです。
ネットワーク構造をインポートし、レイヤをFusionしたりMergeしたり、、、 Dropoutみたいな学習しか使わないレイヤを削除したりできますね。
これが紹介ページです。
NVIDIA TensorRT | NVIDIA Developer
何やってるの??
ネットワーク構造を最適化し、レイヤごとに最も速いカーネル関数を当てはめてます。
こんな感じのことやってます。

Layer & Tensor Fusion
レイヤ間で最適化。くっつけたり削除したり。。Concatなんかは消される。Kernel Auto Tuning
各レイヤはCUDAで書かれてるんですけど、データベースかどっかから登録されてるカーネル関数の一覧から最も速いカーネル関数を選ぶ。
もちろんデバイス依存だけど。Dynamic Tensor Memory
メモリ節約しようよというスタンス(だと思う)Multi Stream Execution
並列で処理できるところは並列でやりましょう!!Precision Calibration
演算精度を変えます。単精度(FP32)→半精度(FP16)とかFP32→整数型(INT8)
FP16にしたらTensorCoreでINT8より速くなりますよね、でも最近のだとTensorCoreはINT8も対応してるとか?
対応してる機械学習フレームワーク
Caffe
TensorFlow、Keras
ONNX
PytorchやMXNet、Chainerは一旦ONNXに変換してから、、です。
やってみたいこと
Jetson Nano上で動画推論させたいのでTensorRTで変換させてみたいです。はい。
がんばりまーす。