nvidia 更新情報: tesla p100 pcie/cudnn 5.1
TRANSCRIPT
NVIDIA更新情報: TESLA P100 PCIE/CUDNN 5.1ディープラーニング部井﨑 武士
2
NVIDIA Deep Learning プラットフォーム
COMPUTER VISION SPEECH AND AUDIO BEHAVIORObject Detection Voice Recognition Translation
Recommendation Engines Sentiment Analysis
DEEP LEARNING
cuDNN
MATH LIBRARIES
cuBLAS cuSPARSE
MULTI-GPU
NCCL
cuFFT
Mocha.jl
Image Classification
DEEP LEARNING SDK
FRAMEWORKS
APPLICATIONS
GPU PLATFORM
CLOUD GPU
Tesla P100
TeslaM40/K80/M4 Jetson TX1
SERVER
DGX-1
GIE
DRIVEPX2
3
倍精度 5.3TF | 単精度 10.6TF | 半精度 21.2TF
TESLA P100ハイパースケールデータセンターのための世界で最も先進的な GPU
4
Tesla P100 の先進テクノロジー
16nm FinFETPascal アーキテクチャ HBM2 積層メモリ NVLink システムインターコネクト
5
Tesla P100 SXM2 board and HBM2
6
Tesla P100 SXM2 board and NVLINK
7
あらゆる面で大きな飛躍
3倍のメモリバンド幅3倍の演算性能 5倍のGPU間通信速度
Tera
flop
s (F
P32/
FP16
)
5
10
15
20
K40
P100 (FP32)
P100 (FP16)
M40
K40
Band
wid
th (
GB/
Sec)
40
80
120
160 P100
M40
K40
Band
wid
th
1x
2x
3x P100
M40
8
Pascal GP100 Block diagram
9
Tesla P100 Whitepaper
http://www.nvidia.com/object/pascal-architecture-whitepaper.html
10
Tesla p100Most Advanced data center gpu for
mixed-app hpcCoWoS with HBM2
PAGE MIGRATION ENGINE
18.7 TF HP ∙ 9.3 TF SP ∙ 4.7 TF DPNew Deep Learning InstructionsMore Registers & Cache per SM
Tesla P100 for PCIe-based Servers
PASCAL
Up to 720 GB/Sec BandwidthUp to 16 GB Memory CapacityECC with Full Performance & Capacity
Simpler Parallel ProgrammingVirtually Unlimited Data Size Performance w/ data locality
11
Tesla p100 accelerators
Tesla P100 for NVLink-enabled Servers
Tesla P100 for PCIe-Based Servers
5.3 TF DP ∙ 10.6 TF SP ∙ 21 TF HP720 GB/sec Memory Bandwidth, 16 GB
4.7 TF DP ∙ 9.3 TF SP ∙ 18.7 TF HPConfig 1: 16 GB, 720 GB/secConfig 2: 12 GB, 540 GB/sec
12
Tesla p100 specificationsTesla Products Tesla K40 Tesla M40 Tesla P100 (NVLink) Tesla P100 (PCIe)GPU / Form Factor Kepler GK110 / PCIe Maxwell GM200 / PCIe Pascal GP100 / SXM2 Pascal GP100 / PCIeSMs 15 24 56 56TPCs 15 24 28 28FP32 CUDA Cores / SM 192 128 64 64FP32 CUDA Cores / GPU 2880 3072 3584 3584FP64 CUDA Cores / SM 64 4 32 32FP64 CUDA Cores / GPU 960 96 1792 1792Base Clock 745 MHz 948 MHz 1328 MHz 1126 MHzGPU Boost Clock 810/875 MHz 1114 MHz 1480 MHz 1303 MHzFP64 GFLOPs 1680 213 5304 4670Texture Units 240 192 224 224
Memory Interface 384-bit GDDR5 384-bit GDDR5 4096-bit HBM2 3072-bit HBM2 (12GB)4096-bit HBM2 (16GB)
Memory Bandwidth 288 GB/s 288 GB/s 720 GB/s 540 GB/s (12GB)720 GB/s (16GB)
Memory Size Up to 12 GB Up to 24 GB 16 GB 12 GB or 16 GBL2 Cache Size 1536 KB 3072 KB 4096 KB 4096 KBRegister File Size / SM 256 KB 256 KB 256 KB 256 KBRegister File Size / GPU 3840 KB 6144 KB 14336 KB 14336 KBTDP 235 Watts 250 Watts 300 Watts 250 WattsTransistors 7.1 billion 8 billion 15.3 billion 15.3 billionGPU Die Size 551 mm² 601 mm² 610 mm² 610 mm²
Manufacturing Process 28-nm 28-nm 16-nm 16-nm
13
NVIDIA cuDNN
最新はバージョン5.1RC
GPU上でディープニューラルネットワークの計算を高速に行う為のプリミティブ群
ディープニューラルネットワークの学習の高いパフォーマンスを発揮Caffe、 CNTK、 Tensorflow、 Theano、Torch、Chainerなどディープラーニングフレームワークを高速化バージョンアップ毎にパフォーマンスが向上
“NVIDIAはcuDNNのリリースの度により多くの操作ができるような機能拡張をおこなっており、同時に計算速度も向上させている”
—UC バークレー、 Caffe リードデベロッパー、Evan Shelhamer
developer.nvidia.com/cudnn
14
NVIDIA cuDNN
• 畳込み以外にもプーリング、ソフトマックス、活性化、batch normalization、テンソルのトランスポーズなどディープラーニングの順伝播・逆伝播でよく使われるレイヤータイプ、計算手法をサポート
• リカレント・ニューラルネットワーク(LSTM/GRU/RNN)をサポート。
• マルチスレッド化が容易なコンテクストベースのAPI
• 以下のOSとGPUの組み合わせで仕様が可能
• Windows(7/10),Linux(x64,power8/ARM),MacOS
• Pascal/Maxwell/Kepler世代のGPU, Tegra K1およびTegra X1
ディープラーニング計算の為の高速なプリミティブ群
15
cuDNN 5 のアップデート
Torch上でLSTM リカレントニューラルネットワークの計算を6倍高速化パフォーマンスの向上:
• VGG、GoogleNet、ResNetsのような3x3 畳み込み層を持つネットワークの高速化
• 3次元畳み込み• Pascal世代のGPUの為のFP16ルーティンの追加• Bilinear Spatial Transformer /ドロップアウト追加
Pascal世代GPU, リカレントニューラルネットワーク, パフォーマンスの向上
Performance relative to torch-rnn(https://github.com/jcjohnson/torch-rnn)
DeepSpeech2: http://arxiv.org/abs/1512.02595Char-rnn: https://github.com/karpathy/char-rnn
5.9xchar-rnn
RNN レイヤーの速度向上
2.8xDeepSpeech 2
RNNレイヤーの速度向上
16
最適なコンボリューションアルゴリズムは、コンボリューションレイヤの次元に依存する。
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:3x3の畳み込みの高速化小さいバッチで、コンボリューションを高効率で演算する
17
cuDNN 5.1
• 3x3と5x5の畳込みの順伝播・および逆伝播計算の為の新しいWinogradアルゴリズムが追加。
• CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED
• CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED
• FP16の順伝播、逆伝播計算のパフォーマンスの向上
• CUDA8.0のサポート
ディープラーニング計算の為の高速なプリミティブ群
18
cuDNN 5.1パフォーマンス
3x3のコンボリューション層をもつネットワークの学習が2.7倍高速に
Spee
d-up
of
trai
ning
vs.
cuD
NN
v4
cuDNN 4 + K40 vs. cuDNN 5.1 RC + M40 on Torch and Intel Xeon HaswellSingle-socket 16-core E5-2698 v3 @2.3GHz 3.6GHz Turbo
この3年間で60倍学習が高速に
Spee
d-up
of
imag
es/S
ec v
s K4
0 in
201
3
Alexnet training throughput on:
CPU: 1xE5-2680v3 12 Co 2.5GHz 128GB System Memory, Ubuntu 14.04M40 bar: 8xM40 GPUs in a node. P100: 8xP100 NVLink-enabled
19
cuDNN アルゴリズム
• 多種多様なアルゴリズムを提供。• CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM
• CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM
• CUDNN_CONVOLUTION_FWD_ALGO_GEMM
• CUDNN_CONVOLUTION_FWD_ALGO_DIRECT
• CUDNN_CONVOLUTION_FWD_ALGO_FFT
• CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING
• CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD
• CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED
20
簡単に最適なアルゴリズムを決定出来る
cudnnConvolutionFwdAlgo_t algo;
cudnnGetConvolutionForwardAlgorithm(cudnnHandle,
srcTensorDesc,
filterDesc,
convDesc,
dstTensorDesc, CUDNN_CONVOLUTION_FWD_PREFER_FASTEST,
workspaceLimit, &algo );
cout << "Fastest algorithm is " << algo << endl;
cudnnGetConvolutionForwardAlgorithm
指定したワークスペースサイズ内で最速のものが選択される
21
NVIDIA cuDNNバージョンアップ毎に強力な機能を追加
Spee
d-up
of
trai
ning
vs.
cuD
NN
v4
x1
x2
x4
x6
cuDNN 5.1cuDNN 5
cuDNN 6
cuDNN 4
Feb. 2016
May. 2016
June. 2016
Batch Normalization追加FFT Tilingアルゴリズムの追加FP16サポート推論計算速度の向上
Coming soon!
?
RNNのサポート3D convolution対応3x3畳込みの高速化Bilinear Spatial Transformer/ドロップアウト追加
?
5x5畳込みの高速化FP16ルーチンの高速化CUDA8対応
THANK YOU!