0
Akira Naruse
Developer Technology Engineer, NVIDIA
ディープラーニング
最新技術情報
何故GPUはディープラーニングに向いているのか?
AGENDA
ディープラーニングの現状
何故GPUがディープラーニングに向いているのか
エヌビディアDIGITSのご紹介
DLが注目されたきっかけ -ILSVRC2012-
誤認識率:
4.94%, Feb. 6, 2015, Microsoft
4.82%, Feb. 11, 2015, Google
人間レベルの認識率
Accuracy %
2010 2014...
GTC 2015
Deep Learning
Deep Learning
Deep Learning
GTC: DL SESSIONS
40
85
0
20
40
60
80
100
0
5
10
15
20
25
2014 2015
画像分類、物体認識 顔認識 音声処理、自然言語処理
医療画像解析 地層解析(Oil&Gas) レコメンド
DL適用分野
DLを用いた車種認識 –NVIDIA CES2015 DEMO-
DLを用いた音声認識 –BAIDU DEEP SPEECH-
http://www.ustream.tv/recorded/60113824
http://www.ustream.tv/recorded/60113824/highlight/6...
画像の説明文の生成 –CNN&RNN-
Recognizing the objects in the picture, and assembling word sequences in the text
representing the sce...
ディープラーニングはスケーラブル
Data & Compute
Performance
&
Accuracy
Deep Learning
従来手法
Slide courtesy of Adam Coates
Yesterday Today To...
KEYS
DLモデル
大量データ
計算パワー
なぜGPUはディープラーニングに
向いているのか?
データ・サイエンティストのワークフロー
クリティカルパス:
Ideaが沸いてから
Testが完了するまで
サイクルを速く回すことが重要
Idea
Code
Train
Test
R&D cycle
データ・サイエンティストのワークフロー
Idea
Code
Train
Test
膨大な計算量
+ CUDA
DLトレーニングシステム
Caffe Theano Torch
GPUs
Chainer
DLフレームワーク
DLアプリケーション
DLトレーニングシステム
Caffe Theano Torch
GPUs
Chainer
DLフレームワーク
DLアプリケーション
cuBLAS, cuDNN
CNN: Convolution Neural Network
フルコネクション (全結合層) cuBLAS
コンボリューション (畳み込み層) cuDNN
LeNet5 [LeCun et al.,1998]
全結合層
Forward (前進)
Layer 1 Layer 2 Layer 3 Layer 4
全結合層
Backward (誤差逆伝播)
Layer 1 Layer 2 Layer 3 Layer 4
全結合層
x[N] y[M]
w[N][M]
𝑦 𝑖 = 𝐹
𝑗
(𝑤 𝑖 𝑗 × 𝑥 𝑗 )
全結合層
x[N] y[M]
w[N][M]
x =
w[N][M] x[N] y[M]
行列 ベクトル
𝑦 𝑖 = 𝐹
𝑗
(𝑤 𝑖 𝑗 × 𝑥 𝑗 )
行列とベクトルの乗算
全結合層
x[N] y[M]
w[N][M]
x =
w[N][M] x[N] y[M]
メモリバンド幅で性能が決まる
Xeon E5-2690v3 Tesla K40
68 GB/s 288 GB/s
ピークメモリバンド...
全結合層
x[N] y[M]
w[N][M]
x =
w[N][M] x[N] y[M]
ミニバッチ: 複数データで同時学習
行列 ベクトル
行列と行列の乗算
全結合層
x[K][N] y[K][M]
w[N][M]
x =
w[N][M] x[K][N] y[K][M]
高い演算能力を発揮できる
Xeon E5-2690v3 Tesla K40
0.88 TFLOPS 4.29 T...
行列演算ライブラリ: cuBLAS
cuBLAS 6.5 on K40m, ECC ON, input and output data on device.
MKL 11.0.4 on Intel IvyBridge single socket...
CNN: Convolution Neural Network
フルコネクション (全結合層) cuBLAS
コンボリューション (畳み込み層) cuDNN
LeNet5 [LeCun et al.,1998]
畳み込み層
出力特徴量マップ
入力特徴量マップ(画像)
処理内容: 画像処理のフィ
ルタと類似
ガウシアンフィルタ (ぼかし)
ソーベルフィルタ (エッジ抽出)
他多数
画像処理フィルタの特徴
フィルタサイズ:小
メモリバンド幅が重要
フィルタ...
畳み込み層
出力特徴量マップ
入力特徴量マップ
多数のフィルタ
フィルタの係数が学習対象
畳み込み層
出力特徴量マップ
入力特徴量マップ
畳み込み層
畳み込み演算
画像処理では、用途に合
わせて個別チューニング
DLの用途、組み合わせが
膨大…
出力特徴量マップ
入力特徴量マップ
畳み込み層
多数パラメータ
o フィルターのサイズ
o 入力特徴量マップの数
o 入力特徴量マップのサイズ
o 出力特徴量マップの数
o 出力特徴量マップのサイズ
o ミニバッチのサイズ
o ストライディング量
o パディング量
o …
個別チ...
畳み込み層
cuDNN
行列演算アプローチ
出力特徴量マップ
入力特徴量マップ
畳み込み層
I0 I1 I2
I3 I4 I5
I6 I7 I8
F0 F1
F2 F3
入力
フィルタ(2x2)
O0 O1
O2 O3
出力
畳み込み層
I0 I1 I2
I3 I4 I5
I6 I7 I8
F0 F1
F2 F3
F0 F1 F2 F3
I0
I1
I3
I4
I1
I2
I4
I5
I3
I4
I6
I7
I4
I5
I7
I8
入力
フィルタ
出力
入力(並び替...
畳み込み層
F0 F1 F2 F3
G0 G1 G2 G3
I0
I1
I3
I4
I1
I2
I4
I5
I3
I4
I6
I7
I4
I5
I7
I8
多数フィルタ
出力
入力(並び替え)
フィルタ
入力(並び替え)
畳み込み層
F0 F1 F2 F3
J0
J1
J3
J4
J1
J2
J4
J5
J3
J4
J6
J7
J4
J5
J7
J8
I0
I1
I3
I4
I1
I2
I4
I5
I3
I4
I6
I7
I4
I5
I7
I8...
畳み込み層
F0 F1 F2 F3
J0
J1
J3
J4
J1
J2
J4
J5
J3
J4
J6
J7
J4
J5
J7
J8
I0
I1
I3
I4
I1
I2
I4
I5
I3
I4
I6
I7
I4
I5
I7
I8
G0 G1 G2...
LENET5
LeNet5 [LeCun et al.,1998]
OutputsFilter
(Expanded)
Inputs
16
100 * batch size
150
150
GOOGLENET
GoogLeNet [Szegedy et al.,2014]
OutputsFilter
(Expanded)
Inputs
192
3136 * batch size
576
576
LENET5 GOOGLENET
0...
cuDNN API
畳み込み演算
cudnnConvolutionForward()
cudnnConvolutionBackward[Bias|Filter|Data]()
活性化
cudnnActivationForward()
cudnn...
GPUはディープラーニングの全フェーズを加速
cuBLAS
LeNet5 [LeCun et al.,1998]
性能測定結果
AlexNet [A. Krizhevsky et al.,2012]
2.5M
18M
23M
43M
0
10
20
30
40
50
16 Core CPU GTX Titan Titan Black
cuDNN v1
Ti...
cuDNN v3
学習の高速化(主にMaxwell向け)
2D畳み込み演算の高速化
FFTコンボリューション対応
より大きなモデル
16ビット浮動小数点ストレージ
9月リリース予定
RC版がダウンロード可能 (登録必要)
https://dev...
Idea
Code
Train
Test
データ・サイエンティストのワークフロー
Idea
Code
Train
Test
R&D cycle
DIGITS
GPUディープラーニングトレーニングシステム (Web UI)
USER
INTERFACE
Visualize
Layers
Configure
DNN
Process
Data
GPUGPU HW CloudGPU Clust...
DIGITS
1. データ準備
Idea
Code
Train
Test
DIGITS
2. モデル設定
Idea
Code
Train
Test
DIGITS
3. 実行と監視
Idea
Code
Train
Test
DIGITS
4. 可視化
Idea
Code
Train
Test
DIGITS: DEMO
DIGITS
developer.nvidia.com/digits github.com/NVIDIA/DIGITS
Idea
Code
Train
Test
データ・サイエンティストのワークフロー
DIGITS
cuBLAS
cuDNN
THANK YOU
Upcoming SlideShare
Loading in...5
×

なぜGPUはディープラーニングに向いているか

1,163

Published on

2015年8月19日 ディープラーニングセミナー2015
名古屋ルーセントタワー

エヌビディア合同会社 シニアデベロッパーテクノロジー エンジニア 成瀬彰

[概要]
本講演では、モルフォが取り組むDeep Learning(以下、DL)ビジネスについての概要と、実用化に 向けてディープラーニングではGPU利用がデファクトになっていますが、GPUを使うとなぜディープラーニングの学習フェーズを加速できるのか、その技術的な背景・理由を説明するとともに、エヌビディアのディープラーニング関連ソフトウェアの最新情報を紹介致します。

Published in: Technology

Transcript of "なぜGPUはディープラーニングに向いているか"

  1. 1. Akira Naruse Developer Technology Engineer, NVIDIA ディープラーニング 最新技術情報 何故GPUはディープラーニングに向いているのか?
  2. 2. AGENDA ディープラーニングの現状 何故GPUがディープラーニングに向いているのか エヌビディアDIGITSのご紹介
  3. 3. DLが注目されたきっかけ -ILSVRC2012- 誤認識率: 4.94%, Feb. 6, 2015, Microsoft 4.82%, Feb. 11, 2015, Google 人間レベルの認識率 Accuracy % 2010 201420122011 2013 74% 84% Deep Learning CV 72%
  4. 4. GTC 2015 Deep Learning Deep Learning Deep Learning
  5. 5. GTC: DL SESSIONS 40 85 0 20 40 60 80 100 0 5 10 15 20 25 2014 2015
  6. 6. 画像分類、物体認識 顔認識 音声処理、自然言語処理 医療画像解析 地層解析(Oil&Gas) レコメンド DL適用分野
  7. 7. DLを用いた車種認識 –NVIDIA CES2015 DEMO-
  8. 8. DLを用いた音声認識 –BAIDU DEEP SPEECH- http://www.ustream.tv/recorded/60113824 http://www.ustream.tv/recorded/60113824/highlight/631666 From: GTC2015 Keynote session Deep Learning: What’s Next, Andrew Ng (Baidu)
  9. 9. 画像の説明文の生成 –CNN&RNN- Recognizing the objects in the picture, and assembling word sequences in the text representing the scenery ( Automated Image Captioning) Stanford Univ. http://cs.stanford.edu/people/karpathy/deepimagesent/generationdemo/
  10. 10. ディープラーニングはスケーラブル Data & Compute Performance & Accuracy Deep Learning 従来手法 Slide courtesy of Adam Coates Yesterday Today Tomorrow
  11. 11. KEYS DLモデル 大量データ 計算パワー
  12. 12. なぜGPUはディープラーニングに 向いているのか?
  13. 13. データ・サイエンティストのワークフロー クリティカルパス: Ideaが沸いてから Testが完了するまで サイクルを速く回すことが重要 Idea Code Train Test R&D cycle
  14. 14. データ・サイエンティストのワークフロー Idea Code Train Test 膨大な計算量 + CUDA
  15. 15. DLトレーニングシステム Caffe Theano Torch GPUs Chainer DLフレームワーク DLアプリケーション
  16. 16. DLトレーニングシステム Caffe Theano Torch GPUs Chainer DLフレームワーク DLアプリケーション cuBLAS, cuDNN
  17. 17. CNN: Convolution Neural Network フルコネクション (全結合層) cuBLAS コンボリューション (畳み込み層) cuDNN LeNet5 [LeCun et al.,1998]
  18. 18. 全結合層 Forward (前進) Layer 1 Layer 2 Layer 3 Layer 4
  19. 19. 全結合層 Backward (誤差逆伝播) Layer 1 Layer 2 Layer 3 Layer 4
  20. 20. 全結合層 x[N] y[M] w[N][M] 𝑦 𝑖 = 𝐹 𝑗 (𝑤 𝑖 𝑗 × 𝑥 𝑗 )
  21. 21. 全結合層 x[N] y[M] w[N][M] x = w[N][M] x[N] y[M] 行列 ベクトル 𝑦 𝑖 = 𝐹 𝑗 (𝑤 𝑖 𝑗 × 𝑥 𝑗 )
  22. 22. 行列とベクトルの乗算 全結合層 x[N] y[M] w[N][M] x = w[N][M] x[N] y[M] メモリバンド幅で性能が決まる Xeon E5-2690v3 Tesla K40 68 GB/s 288 GB/s ピークメモリバンド幅 行列 ベクトル
  23. 23. 全結合層 x[N] y[M] w[N][M] x = w[N][M] x[N] y[M] ミニバッチ: 複数データで同時学習 行列 ベクトル
  24. 24. 行列と行列の乗算 全結合層 x[K][N] y[K][M] w[N][M] x = w[N][M] x[K][N] y[K][M] 高い演算能力を発揮できる Xeon E5-2690v3 Tesla K40 0.88 TFLOPS 4.29 TFLOPS ピーク演算性能(単精度) 行列 行列
  25. 25. 行列演算ライブラリ: cuBLAS cuBLAS 6.5 on K40m, ECC ON, input and output data on device. MKL 11.0.4 on Intel IvyBridge single socket 12 -core E5-2697 v2 @ 2.70GHz cuBLAS 6.5 on K40m, ECC on, input and output data on device. m=n=k=4096, transpose=no, side=right, fill=lower GPU向け行列演算ライブラリ(BLAS完全準拠) DLで使われるのは単精度の行列積(SGEMM)
  26. 26. CNN: Convolution Neural Network フルコネクション (全結合層) cuBLAS コンボリューション (畳み込み層) cuDNN LeNet5 [LeCun et al.,1998]
  27. 27. 畳み込み層 出力特徴量マップ 入力特徴量マップ(画像) 処理内容: 画像処理のフィ ルタと類似 ガウシアンフィルタ (ぼかし) ソーベルフィルタ (エッジ抽出) 他多数 画像処理フィルタの特徴 フィルタサイズ:小 メモリバンド幅が重要 フィルタサイズ:大 演算性能が重要
  28. 28. 畳み込み層 出力特徴量マップ 入力特徴量マップ 多数のフィルタ フィルタの係数が学習対象
  29. 29. 畳み込み層 出力特徴量マップ 入力特徴量マップ
  30. 30. 畳み込み層 畳み込み演算 画像処理では、用途に合 わせて個別チューニング DLの用途、組み合わせが 膨大… 出力特徴量マップ 入力特徴量マップ
  31. 31. 畳み込み層 多数パラメータ o フィルターのサイズ o 入力特徴量マップの数 o 入力特徴量マップのサイズ o 出力特徴量マップの数 o 出力特徴量マップのサイズ o ミニバッチのサイズ o ストライディング量 o パディング量 o … 個別チューニングは大変 出力特徴量マップ 入力特徴量マップ
  32. 32. 畳み込み層 cuDNN 行列演算アプローチ 出力特徴量マップ 入力特徴量マップ
  33. 33. 畳み込み層 I0 I1 I2 I3 I4 I5 I6 I7 I8 F0 F1 F2 F3 入力 フィルタ(2x2) O0 O1 O2 O3 出力
  34. 34. 畳み込み層 I0 I1 I2 I3 I4 I5 I6 I7 I8 F0 F1 F2 F3 F0 F1 F2 F3 I0 I1 I3 I4 I1 I2 I4 I5 I3 I4 I6 I7 I4 I5 I7 I8 入力 フィルタ 出力 入力(並び替え)
  35. 35. 畳み込み層 F0 F1 F2 F3 G0 G1 G2 G3 I0 I1 I3 I4 I1 I2 I4 I5 I3 I4 I6 I7 I4 I5 I7 I8 多数フィルタ 出力 入力(並び替え) フィルタ
  36. 36. 入力(並び替え) 畳み込み層 F0 F1 F2 F3 J0 J1 J3 J4 J1 J2 J4 J5 J3 J4 J6 J7 J4 J5 J7 J8 I0 I1 I3 I4 I1 I2 I4 I5 I3 I4 I6 I7 I4 I5 I7 I8 G0 G1 G2 G3 ミニ・バッチ (複数データで同時学習) 出力フィルタ F0 F1 F2 F3 G0 G1 G2 G3
  37. 37. 畳み込み層 F0 F1 F2 F3 J0 J1 J3 J4 J1 J2 J4 J5 J3 J4 J6 J7 J4 J5 J7 J8 I0 I1 I3 I4 I1 I2 I4 I5 I3 I4 I6 I7 I4 I5 I7 I8 G0 G1 G2 G3 出力 行列と行列の乗算 高い演算能力を発揮できる フィルタ(並び替え) cuDNN: 行列演算への変換も含め、全てを処理 入力(並び替え) G0 G1 G2 G3 F0 F1 F2 F3
  38. 38. LENET5 LeNet5 [LeCun et al.,1998] OutputsFilter (Expanded) Inputs 16 100 * batch size 150 150
  39. 39. GOOGLENET GoogLeNet [Szegedy et al.,2014] OutputsFilter (Expanded) Inputs 192 3136 * batch size 576 576 LENET5 GOOGLENET 0.24 x Bs 346 x Bs 1回の演算量(MFLOP)
  40. 40. cuDNN API 畳み込み演算 cudnnConvolutionForward() cudnnConvolutionBackward[Bias|Filter|Data]() 活性化 cudnnActivationForward() cudnnActivationBackward() プーリング cudnnPoolingForward() cudnnPoolingBackward() ソフトマックス cudnnSoftmaxForward() cudnnSoftmaxBackward() …
  41. 41. GPUはディープラーニングの全フェーズを加速 cuBLAS LeNet5 [LeCun et al.,1998]
  42. 42. 性能測定結果 AlexNet [A. Krizhevsky et al.,2012] 2.5M 18M 23M 43M 0 10 20 30 40 50 16 Core CPU GTX Titan Titan Black cuDNN v1 Titan X cuDNN v2 画像数(M) 1日あたりの学習画像数 (Caffe) E5-2698 v3 @ 2.3GHz / 3.6GHz Turbo
  43. 43. cuDNN v3 学習の高速化(主にMaxwell向け) 2D畳み込み演算の高速化 FFTコンボリューション対応 より大きなモデル 16ビット浮動小数点ストレージ 9月リリース予定 RC版がダウンロード可能 (登録必要) https://developer.nvidia.com/cuDNN 0.0x 0.5x 1.0x 1.5x 2.0x 2.5x Alexnet OverFeat VGG cuDNN v2  cuDNN v3 学習性能: 最大2倍 cuDNN 3 performance vs. previous version on Ubuntu 14.04 LTS with NVIDIA® GeForce® TITAN X and Intel® Core™ i7-4930K @ 3.40GHz
  44. 44. Idea Code Train Test データ・サイエンティストのワークフロー Idea Code Train Test R&D cycle
  45. 45. DIGITS GPUディープラーニングトレーニングシステム (Web UI) USER INTERFACE Visualize Layers Configure DNN Process Data GPUGPU HW CloudGPU ClusterMulti-GPU Theano Torch Monitor Progress Caffe cuDNN, cuBLAS CUDA データサイエンティスト向け DNNモデルの設計 学習状況・結果の可視化 多数の学習の管理
  46. 46. DIGITS 1. データ準備 Idea Code Train Test
  47. 47. DIGITS 2. モデル設定 Idea Code Train Test
  48. 48. DIGITS 3. 実行と監視 Idea Code Train Test
  49. 49. DIGITS 4. 可視化 Idea Code Train Test
  50. 50. DIGITS: DEMO
  51. 51. DIGITS developer.nvidia.com/digits github.com/NVIDIA/DIGITS
  52. 52. Idea Code Train Test データ・サイエンティストのワークフロー DIGITS cuBLAS cuDNN
  53. 53. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×
×
SlideShare is now LinkedIn SlideShare
Learn More