Comments
Description
Transcript
GPU INFERENCE ENGINE
「NVIDIA Deep Learning SDK を 利用した画像認識」 森野 慎也, シニア CUDA エンジニア,プラットフォームビジネス本部, エヌビディア合同会社 GPU INFERENCE ENGINE ディープラーニングにおける最高の推論パフォーマンス 高性能なフレームワークで、 GPU上の推論エンジンを、容易に開発する。 ディープラーニングによる推論を用いた、 製品展開のためのソリューション HTTP (~10ms) データセンターにおける GPU Inference Engine 画像分類 トレーニング済みネットワーク、ターゲットGPUに対して、 推論エンジンの性能を最適化 オブジェクト 検知 音声認識 --- 32-bit、16-bit 演算を用いた推論エンジン Hyperscale, ADAS, Embedded 向け developer.nvidia.com/gpu-inference-engine 2 GPU INFERENCE ENGINE ディープラーニングにおける最高の推論パフォーマンス 高性能なフレームワークで、 GPU上の推論エンジンを、容易に開発する。 ディープラーニングによる推論を用いた、 製品展開のためのソリューション トレーニング済みネットワーク、ターゲットGPUに対して、 推論エンジンの性能を最適化 自動運転におけるGPU Inference Engine 歩行者検知 レーン トラッキング 交通標識の 認識 --- 32-bit、16-bit 演算を用いた推論エンジン Hyperscale, ADAS, Embedded 向け NVIDIA DRIVE PX 2 developer.nvidia.com/gpu-inference-engine 3 トレーニング と 推論(inference) 要件の比較 トレーニング 推論 種々のモデルを 試す必要がある モデルは決定済み 演算処理 Back propagationによる 係数の最適化 演算はForwardのみ 係数も決定済み バッチサイズ 学習データが大量であり、 バッチサイズは大きい バッチサイズは、認識対象数。 一般にトレーニングより小さい マルチGPU、マルチノードを活用。 ストロングスケーリング 単一の端末で実行。 メモリバンド幅の制約が強い 混合精度演算が有効 モデル プラットフォーム 4 ニューラルネットワークの実行性能最適化 参考: S6136 - NVIDIA™ GIE: High-Performance GPU Inference Engine Michael Andersch GPU Architect, NVIDIA 5 推論ソフトウエアの最適化 課題 : 小さいバッチで、コンボリューションを高効率で演算する 最適なコンボリューションアルゴリズムは、コンボリューションレイヤの次元に依存する。 Winogradによる実行性能向上 (GEMMを用いたコンボリューションと比較 VGG-E layers, N=1) 1.84 1.83 2.03 2.07 2.26 1.92 1.98 1.25 0.73 conv 1.1 conv 1.2 conv 2.1 conv 2.2 conv 3.1 conv 3.2 conv 4.1 conv 4.2 conv 5.0 6 推論ソフトウエアの最適化 課題 : グラフ最適化 tensor concat 3x3 conv. 5x5 conv. 1x1 conv. 1x1 conv. 1x1 conv. max pool 1x1 conv. input 7 推論ソフトウエアの最適化 課題 : グラフ最適化 next input concat relu bias 1x1 conv. relu bias 3x3 conv. relu bias 3x3 conv. relu bias 3x3 conv. relu bias 1x1 conv. relu bias 3x3 conv. max pool input concat 8 推論ソフトウエアの最適化 グラフ最適化 : 縦方向に処理を融合 next input concat 1x1 CBR 3x3 CBR 5x5 CBR 1x1 CBR 1x1 CBR 1x1 CBR max pool input concat 9 推論ソフトウエアの最適化 グラフ最適化: 横方向に処理を融合 next input concat 5x5 CBR 3x3 CBR 1x1 CBR max pool 1x1 CBR input concat 10 推論ソフトウエアの最適化 グラフ最適化: Concatenationを除去 next input 5x5 CBR 3x3 CBR 1x1 CBR max pool 1x1 CBR input 11 推論ソフトウエアの最適化 グラフ最適化: 並行実行(コンカレンシ) next input 5x5 CBR 3x3 CBR 1x1 CBR max pool 1x1 CBR input 12 データレイアウト・テクスチャ メタパラメータ - GEMMによる行列演算で、事前に係数行列を転置 - NN/NT GEMMの利用 ( NT > NN > TN ) - テンソルレイアウト - 例) NHalf2 - テクスチャメモリをコンボリューションに使用 - 13% 推論性能向上 (GoogLeNet, バッチサイズ 1) 13 4/26/2 テンソルフォーマット NHalf2 • テンソルの内部表現では、隣り合ったイメージの値を交互に配置するレイアウトを用いる。 • 推論を16 bit演算で行った場合、NCHW レイアウトより、 非常に高速。 14 推論ソフトウエアの最適化 課題: cuBLAS関数をより効率的に活用 GEMVをGEMMの代わりに使う バッチサイズが小さいと、B行列が狭くなる 代わりにGEMVをバッチ実行する 15 PASCAL世代での推論の高速化 高速な混合精度演算のサポート 推論向けのGPU製品では、新しいベクタ演算命令をサポートしていく。 複数要素の内積演算 : 8-bit 整数入力、32-bit 加算 等価なFP32演算と比べ、4倍のスループット 高い精度が必要なレイヤでは、フルスピードのFP32演算処理を利用 16 だけど、誰が実装してくれるの? 17 4/26/2016 GPU INFERENCE ENGINE ニューラルネットワークの最適化 • ネットワークレイヤの融合 • Concatenationレイヤの除去 • カーネル特殊化 • ターゲットプラットフォームに対する オートチューニング トレーニング済みの ニューラルネットワーク 最適化された 推論 エンジン • 最適なテンソルレイアウトの選択 • バッチサイズのチューニング developer.nvidia.com/gpu-inference-engine 18 GPU Inference Engine ワークフロー OPTIMIZATION ENGINE DIGITS TRAINING TOOLS STRATEGY EXECUTION ENGINE 19 GPU INFERENCE ENGINE パフォーマンス Tesla M4 Jetson TX1 バッチサイズ パフォーマンス 電力効率 128 1153 images/s 20 images/s/W 2 133 images/s 24 images/s/W developer.nvidia.com/gpu-inference-engine 20