nvidia deep learning sdk を利用した画像認識
TRANSCRIPT
![Page 1: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/1.jpg)
森野慎也, シニア CUDA エンジニア,プラットフォームビジネス本部, エヌビディア合同会社
「NVIDIA Deep Learning SDK を利用した画像認識」
![Page 2: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/2.jpg)
2
GPU INFERENCE ENGINE
高性能なフレームワークで、GPU上の推論エンジンを、容易に開発する。
ディープラーニングによる推論を用いた、製品展開のためのソリューション
トレーニング済みネットワーク、ターゲットGPUに対して、推論エンジンの性能を最適化
32-bit、16-bit 演算を用いた推論エンジン
Hyperscale, ADAS, Embedded 向け
HTTP (~10ms)
developer.nvidia.com/gpu-inference-engine
データセンターにおける GPU Inference Engine
画像分類 オブジェクト検知
音声認識 ---
ディープラーニングにおける最高の推論パフォーマンス
![Page 3: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/3.jpg)
3
GPU INFERENCE ENGINEディープラーニングにおける最高の推論パフォーマンス
developer.nvidia.com/gpu-inference-engine
自動運転におけるGPU Inference Engine
歩行者検知 レーントラッキング
交通標識の認識
---
NVIDIA DRIVE PX 2
高性能なフレームワークで、GPU上の推論エンジンを、容易に開発する。
ディープラーニングによる推論を用いた、製品展開のためのソリューション
トレーニング済みネットワーク、ターゲットGPUに対して、推論エンジンの性能を最適化
32-bit、16-bit 演算を用いた推論エンジン
Hyperscale, ADAS, Embedded 向け
![Page 4: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/4.jpg)
4
トレーニング と 推論(inference)
トレーニング 推論
モデル 種々のモデルを試す必要がある
モデルは決定済み
演算処理Back propagationによる
係数の最適化演算はForwardのみ係数も決定済み
バッチサイズ学習データが大量であり、バッチサイズは大きい
バッチサイズは、認識対象数。一般にトレーニングより小さい
プラットフォームマルチGPU、マルチノードを活用。
ストロングスケーリング
単一の端末で実行。メモリバンド幅の制約が強い混合精度演算が有効
要件の比較
![Page 5: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/5.jpg)
5
ニューラルネットワーク演算の高性能化~GIEの背景にある技法~
参考:
S6136 - NVIDIA™ GIE: High-Performance GPU Inference EngineMichael Andersch GPU Architect, NVIDIA
![Page 6: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/6.jpg)
6
ニューラルネットワーク演算の高性能化
- コンボリューションアルゴリズムの選択
- グラフ最適化
- メタパラメータ
- テンソルレイアウト
- BLASのより有効な活用
アプローチ
![Page 7: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/7.jpg)
7
最適なコンボリューションアルゴリズムは、コンボリューションレイヤの次元に依存する。
0.73
1.84 1.832.03 2.07
2.26
1.92 1.98
1.25
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
Winogradによる実行性能向上 (GEMMを用いたコンボリューションと比較 VGG-E layers, N=1)
推論ソフトウエアの最適化課題 : 小さいバッチで、コンボリューションを高効率で演算する
Winogradに関する参考文献 : Andrew Lavin, Scott Gray, http://arxiv.org/abs/1509.09308
![Page 8: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/8.jpg)
8
VGG-E
- 19 weight layers
- コンボリューションのサイズは、3x3。
- チャンネル数が変わる。
- 64 → 128 → 256 → 512
Karen Simonyan & Andrew Zisserman,
VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE
RECOGNITION
http://arxiv.org/abs/1409.1556
![Page 9: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/9.jpg)
9
最適なコンボリューションアルゴリズムは、コンボリューションレイヤの次元に依存する。
0.73
1.84 1.832.03 2.07
2.26
1.92 1.98
1.25
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
Winogradによる実行性能向上 (GEMMを用いたコンボリューションと比較 VGG-E layers, N=1)
推論ソフトウエアの最適化課題 : 小さいバッチで、コンボリューションを高効率で演算する
Winogradに関する参考文献 : Andrew Lavin, Scott Gray, http://arxiv.org/abs/1509.09308
![Page 10: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/10.jpg)
10
推論ソフトウエアの最適化課題 : グラフ最適化
tensor
concat
1x1 conv.3x3 conv. 5x5 conv. 1x1 conv.
1x1 conv. 1x1 conv. max pool
input
![Page 11: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/11.jpg)
11
推論ソフトウエアの最適化課題 : グラフ最適化
concat
max pool
input
next input
3x3 conv.
relu
bias
1x1 conv.
relu
bias
3x3 conv.
relu
bias
3x3 conv.
relu
bias
concat
1x1 conv.
relu
bias3x3 conv.
relu
bias
![Page 12: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/12.jpg)
12
カーネル融合メモリアクセスを減らす
3x3 conv. relubiasGPU Kernel
GPU DRAMREAD WRITE READ WRITE READ WRITE
3x3 conv. + bias + reluGPU Kernel
GPU DRAMREAD WRITE
カーネル融合
(a) カーネル融合前
(b) カーネル融合後
![Page 13: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/13.jpg)
13
推論ソフトウエアの最適化グラフ最適化 : 縦方向に処理を融合
concat
max pool
input
next input
concat
1x1 CBR 3x3 CBR 5x5 CBR 1x1 CBR
1x1 CBR 1x1 CBR
![Page 14: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/14.jpg)
14
推論ソフトウエアの最適化グラフ最適化: 横方向に処理を融合
concat
max pool
input
next input
concat
3x3 CBR 5x5 CBR 1x1 CBR
1x1 CBR
![Page 15: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/15.jpg)
15
推論ソフトウエアの最適化グラフ最適化: Concatenationを除去
max pool
input
next input
3x3 CBR 5x5 CBR 1x1 CBR
1x1 CBR
![Page 16: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/16.jpg)
16
推論ソフトウエアの最適化グラフ最適化: 並行実行(コンカレンシ)
max pool
input
next input
3x3 CBR 5x5 CBR 1x1 CBR
1x1 CBR
![Page 17: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/17.jpg)
17
推論ソフトウエアの最適化課題: cuBLAS関数をより効率的に活用
「GEMM」の代わりに「GEMV」を使う
バッチサイズが小さいと、B行列が狭くなる
GEMVのバッチ実行により性能向上
GEMM(行列積) : α*op(A) *op(B) + β*C
GEMV (行列・ベクタ積) : α*op(A)*x + β*y
op: 行列転置に関するオペレータ
![Page 18: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/18.jpg)
18
データレイアウト・テクスチャ
- テンソルレイアウト
- 例) NHalf2
- GEMMによる行列演算で、事前に係数行列を転置
- NN/NT GEMMの利用( NT > NN > TN )
- テクスチャメモリをコンボリューションに使用
- 13% 推論性能向上 (GoogLeNet, バッチサイズ 1)
メタパラメータ
5/2/20
16
![Page 19: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/19.jpg)
19
テンソルフォーマット
• テンソルの内部表現では、隣り合ったイメージの値を交互に配置するレイアウトを用いる。
• 推論を16 bit演算で行った場合、NCHW レイアウトより、 非常に高速。
NHalf2
![Page 20: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/20.jpg)
20
PASCAL世代での推論の高速化高速な混合精度演算のサポート
推論向けのGPU製品では、新しいベクタ演算命令をサポートしていく。
複数要素の内積演算 : 8-bit 整数入力、32-bit 加算
等価なFP32演算と比べ、4倍のスループット
高い精度が必要なレイヤでは、フルスピードのFP32演算処理を利用
![Page 21: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/21.jpg)
21
だけど、誰が実装してくれるの?
5/2/2016
![Page 22: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/22.jpg)
22
GPU INFERENCE ENGINEニューラルネットワークの最適化
• ネットワークレイヤの融合
• Concatenationレイヤの除去
• カーネル特殊化
• ターゲットプラットフォームに対する
オートチューニング
• 最適なテンソルレイアウトの選択
• バッチサイズのチューニング
トレーニング済みのニューラルネットワーク
最適化された推論エンジン
developer.nvidia.com/gpu-inference-engine
![Page 23: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/23.jpg)
23
GPU Inference Engine ワークフロー
DIGITS TRAINING TOOLS
OPTIMIZATION ENGINE
EXECUTION ENGINE
STRATEGY
![Page 24: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/24.jpg)
24
GPU INFERENCE ENGINEパフォーマンス
バッチサイズ パフォーマンス 電力効率
Tesla M4 128 1153 images/s 20 images/s/W
Jetson TX1 2 133 images/s 24 images/s/W
developer.nvidia.com/gpu-inference-engine
![Page 25: NVIDIA Deep Learning SDK を利用した画像認識](https://reader034.vdocuments.mx/reader034/viewer/2022042513/586f72511a28ab10258b539b/html5/thumbnails/25.jpg)