SlideShare a Scribd company logo
Akira Naruse, Senior Developer Technology Engineer, 2018/12/15
Chainer で Tensor コア (fp16) を
使いこなす
2
ドーナツで、発表枠を、頂戴しました
128個
90個
3
最初におことわり…
タイトル:
• Chainer で Tensor コア (fp16) を使いこなす
中身:
• ありとあらゆる手段を使い、Chainer で Tensor コア (fp16) を
どこまで使いきれるかを、実験した
4
VOLTA TENSOR コア
FP16/FP32 混合精度行列演算ユニット
Tesla P100 Tesla V100
FP16 20 TFLOPS 125 TFLOPS
(Tensor コア)
FP32 10 TFLOPS 16 TFLOPS
FP16
FP16
× + FP32
FP32
FP16 FP32
5
FP16 で学習して、精度は大丈夫?
• 2 つのテクニック
• ロス スケーリング
• ロス値をスケールアップし、勾配消失を緩和
• ウェイト更新直前に、勾配値をスケールダウン
• FP32 ウェイト更新 (FP16 と FP32 の併用)
• Forward/Backward は FP16 で計算
• Update で FP32 を使用
Mixed Precision Training
https://devblogs.nvidia.com/mixed-precision-training-deep-neural-networks/
勾配値の分布
(*) FP16 にすると、多くの勾配値がゼロになってしまう
6
ロス スケーリングと FP32 ウェイト更新
勾配勾配勾配勾配勾配勾配勾配
損失
関数
誤差
Backward
Forward
Update
勾配をスケールダウンし (例: 1/10 倍)、
FP32 ウェイト (master) を更新し、
FP16 ウェイトにコピーする
Backward 直前に誤差をスケールアップし
(例: 10 倍)、勾配消失を回避する
7
FP16 で精度を維持する方法
• FP16 で学習しても、FP32 モデルとほぼ同じ精度
• 主要な DL フレームワークで利用可能
• TensorFlow
• PyTorch
• MxNet
• Chainer
Mixed Precision Training
https://devblogs.nvidia.com/mixed-precision-training-deep-neural-networks/
Better
8
本日のお題
ResNet-50 のトレーニングを
Tensor コア/fp16 を用いて
Chainer で速くする
(*) K. He, et.al., Deep Residual Learning for Image Recognition, arxive:1512.03385
Bottleneck architecture
ResNet-34 ResNet-50
9
テスト環境
Machine: DGX Station
GPU: Tesla V100-16GB
CUDA: 9.2
cuDNN: 7.4.1
Chainer: v6.0.0b1+
CuPy: v6.0.0b1+
10
注意事項: その1
cuDNN のワークスペースサイズを大きめに設定する
chainer.cuda.set_max_workspace_size(512*1024*1024) # 512MiB
cuDNN の Auto Tuning を使う
config.autotune = True
(*) そうしないと、適切なアルゴリズムが選択されない、ことが多い
cuDNN の高速 Batch Normalization 実装を使う
config.cudnn_fast_batch_normalization = True
(*) fp32 でも有効、オーバーフローの可能性有るので注意
cuDNN tips
11
注意事項: その2
モデル記述を fp16 向けに修正
• 入力: fp16 に cast
• Initializer、Batch normalization: dtype に fp16 指定
本当は、fp16 モードをセットするだけで OK なんだけど..
CHAINER_DTYPE=float16
Chainer tips
def forward(self, x, t):
- h = self.bn1(self.conv1(x))
+ h = self.bn1(self.conv1(F.cast(x, np.float16)))
h = F.max_pooling_2d(F.relu(h), 3, stride=2)
self.conv1 = L.Convolution2D(3, 64, 7, 2, 3,
- initialW=initializers.HeNormal())
- self.bn1 = L.BatchNormalization(64)
+ initialW=initializers.HeNormal(dtype=np.float16))
+ self.bn1 = L.BatchNormalization(64, dtype=np.float16)
12
性能比較
良い点:
• BS: 128 以上で、fp32 より速い
• BS: 256で学習可能 (fp32 だと
メモリ不足)
悪い点:
• BS: 64 以下だと、fp32 より遅い
FP32 vs. FP16
0
100
200
300
400
500
600
700
800
900
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16
Better
13
TRAINING ITERATION
CPU の仕事
• IO: 入力画像の前処理 (Decode,
Augmentation)
• Forward/Backward/Update: 計算グラフ管理,
メモリ管理, GPU カーネル投入
IO Forward Backward Update
GPU の仕事
• Forward/Backward/Update: CPU
から投入されたカーネルを実行
14
性能比較
良い点:
• BS: 128以上で、fp32 より速い
• BS: 256で学習可能 (fp32 だと
メモリ不足)
悪い点:
• BS: 64以下だと、fp32 より遅い
FP32 vs. FP16
0
100
200
300
400
500
600
700
800
900
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16
Better
15
NVVP で挙動を確認 (FP32, BS: 64)
高い GPU 稼働率
FWD BWD UPDIO
CPU
FWD BWD
GPU
拡大
16
NVVP で挙動を確認 (FP32, BS: 64)
拡大図
高い GPU 稼働率
FWD BWD
17
NVVP で挙動を確認 (FP16, BS: 64)
GPU稼働率が低い
FWD BWDIO
CPU
FWD BWDGPU
Tensor コア使用で GPU 処理は速くなった。しかし、CPU の処理が間に合わない
18
NVVP で挙動を確認 (FP16, BS: 64)
拡大図
GPU 稼働率が低い
FWD BWD
19
対策: CPU の負荷を減らす
IO 処理を高速化、別スレッドで実行
• NVIDIA DALI
GPU 操作回数、GPU カーネル数を削減
• Batched weight update、 Fused Bnorm/ReLu、 NHWC format
計算グラフ管理負荷を削減
• Chainer static_graph
20
NVIDIA DALI
https://github.com/NVIDIA/DALI (オープンソース)
前処理は別スレッドで実行
一部前処理は GPU 利用して加速
Chainer、DALI 対応済
(experimental)
• 詳しくは、examples/imagenet を参照
21
NVIDIA DALIの効果
良い点:
• BS: 64以上で、fp32 より速い
• BS: 128 はBS: 256 とほぼ同性能
悪い点:
• BS: 32以下だと、fp32 より遅い
0
100
200
300
400
500
600
700
800
900
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16 fp16 (+dali)
Better
22
NVIDIA DALI の効果確認 (FP16, BS: 64)
IO 処理は、他とオーバーラップ
FWD BWD
FWD BWD
IO by DALI (next)
CPU
GPU
依然として、CPU の処理が間に合っていない
23
対策: CPU の負荷を減らす
IO 処理を高速化、別スレッドで実行
• NVIDIA DALI
GPU 操作回数、GPU カーネル数を削減
• Batched weight update、 Fused Bnorm/ReLu、 NHWC format
計算グラフ管理負荷を削減
• Chainer static_graph
24
BATCHED WEIGHT UPDATE
Chainer optimizer は、レイヤー毎(より正確にはパラメータ毎)に、重みを更新
• 多数の GPU カーネル起動 → CPU 負荷大
Single GPU カーネルで、全ての重みを更新 (batched_update)
Chainer #5841
PR中
update
update
CPU
GPU
25
FUSED BNORM/RELU
• cuDNN 7.4 から導入
• Fp16 and NHWC フォーマット
(後述) のときに利用可能
• レイヤーの自動融合は大変。
bnorm_add_relu モジュールを試作。
モデル記述を修正。
GPU カーネル数の削減、メモリアクセス量を削減
試作
26
NHWC FORMAT
• NCHW だと、Convolution 前後
で、合計 3 回の Tensor
Transpose が必要
• NHWC なら、Transpose 不要
→ GPU カーネル数削減
• Chainer は NCHW only
• NHWC 専用の
Convolution/Bnorm モジュール
を試作
cuDNN Convolution for TensorCore: NHWC format で高い性能を発揮
NCHW NHWC
試作
27
BATCHED+FUSED+NHWC の効果
良い点:
• 常に fp32 より速い
• BS: 256 で、1200 imgs/sec
悪い点 (相対的に):
• BS: 32は、BS: 256 の 1/3 の
性能0
200
400
600
800
1000
1200
1400
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16 (+dali) fp16 (+nhwc, fused, batched)
Better
28
効果確認 (FP16, BS: 64)
NHWC+FUSED+BATCHED
FWD BWD
FWD BWD
IO by DALI (next)
CPU
GPU
CPU 負荷を減らしたが、GPU 時間も NHWC+FUSED で短縮 → まだ GPU に空きがある
29
対策: CPU の負荷を減らす
IO 処理を高速化、別スレッドで実行
• NVIDIA DALI
GPU 操作回数、GPU カーネル数を削減
• Batched weight update、 Fused Bnorm/ReLu、 NHWC format
計算グラフ管理負荷を削減
• Chainer static_graph
30
STATIC_GRAPH
説明省略
31
STATIC_GRAPHの効果
良い点:
• BS: 32/64 の性能改善
悪い点:
• BS: 128 以上で実行不可
(メモリ使用量が増える?)
0
200
400
600
800
1000
1200
1400
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16 (+nhwc, fused, batched) fp16 (+static_graph)
Better
32
効果確認 (FP16, BS: 64)
Static_graph
FWD BWD
FWD BWD
IO by DALI (next)
CPU
GPU
やっと、「CPU 処理時間 < GPU 処理時間」、になった
33
ここまでのまとめ
fp32 の3倍の性能を達成 (最大で)
• DALI
• Batched weight update
• Fused Bnorm/ReLu
• NHWC format
• Static_graph
Backend が python でも、ここまで
速くできる
Tensor コア/fp16 を用いた ResNet-50 トレーニング
0
200
400
600
800
1000
1200
1400
bs:32 bs:64 bs:128 bs:256
Images/sec
fp32 fp16 (base) fp16 (best)
Better
ChainerXで
速くなる?
34
何故 “BS: 32” を速くしたいのか
Goal: ImageNet+ResNet50 with 4096 GPUs
Processor DL framework Time
Microsoft Tesla P100 x8 Caffe 29 hours
Facebook Tesla P100 x256 Caffe2 1 hour
Google TPUv2 x256 TensorFlow 30 mins
PFN Tesla P100 x1024 Chainer 15 mins
Tencent Tesla P40 x2048 TensorFlow 6.6 mins
SONY Tesla V100 x2176 NNL 3.7 mins
Google TPUv3 x1024 TensorFlow 2.2 mins
35
LARGE MINI-BATCH PROBLEM
Local BS: 32 でも、4096 GPU だと、
Global BS: 128K
ImageNet + ResNet50だと、Global
BS: 32~64K でも、validation
error < 25% を出せるようになってき
たが..
SGD の限界?
ImageNet, ResNet50, Local BS:32
(*) P. Goyal, et.al., Facebook,
“Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”
Better
36
SGD 以外の選択肢
Backprop で得られる「勾配ベクトル」の向きは、
それほど正しくない
KFAC: フィッシャー行列を近似計算して勾配補正
• 学習の「向き」が SGD より正しくなる (反復数減)
• 1 反復あたりの計算量が増える
Global BS: 128K でも、75% の validation
accuracy を実証
• BS 16K 以下なら、30~35 epoch で収束
(SGD は90 epoch 必要)
K. Osawa, et.al., “Second-order Optimization Method for Large Mini-batch:
Training ResNet-50 on ImageNet in 35 Epochs”
(*) 東工大 横田研・松岡研との共同研究
ImageNet + ResNet50
Better
Distributed KFAC optimizer
on Chainer
37
ご案内
「第1 回 ディープラーニング分散学習ハッカソン」
https://www.cc.u-tokyo.ac.jp/events/lectures/111/
Chainer で Tensor コア (fp16) を使いこなす

More Related Content

What's hot

モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
Yusuke Uchida
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models
Deep Learning JP
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
Deep Learning JP
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
 
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
Yoshitaka Ushiku
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
Fixstars Corporation
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
Yusuke Uchida
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
 
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
Deep Learning JP
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
Takateru Yamagishi
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
ryos36
 
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
Deep Learning JP
 
continual learning survey
continual learning surveycontinual learning survey
continual learning survey
ぱんいち すみもと
 

What's hot (20)

モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling【DL輪読会】Flow Matching for Generative Modeling
【DL輪読会】Flow Matching for Generative Modeling
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
AlphaGo Zero 解説
AlphaGo Zero 解説AlphaGo Zero 解説
AlphaGo Zero 解説
 
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
SSII2019TS: Shall We GANs?​ ~GANの基礎から最近の研究まで~
 
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning[Dl輪読会]introduction of reinforcement learning
[Dl輪読会]introduction of reinforcement learning
 
continual learning survey
continual learning surveycontinual learning survey
continual learning survey
 

Similar to Chainer で Tensor コア (fp16) を使いこなす

20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami1
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
Kuninobu SaSaki
 
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
Deep Learning Lab(ディープラーニング・ラボ)
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
RCCSRENKEI
 
GPUディープラーニング最新情報
GPUディープラーニング最新情報GPUディープラーニング最新情報
GPUディープラーニング最新情報
ReNom User Group
 
Volta は、Chainer で使えるの?
Volta は、Chainer で使えるの?Volta は、Chainer で使えるの?
Volta は、Chainer で使えるの?
NVIDIA Japan
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
 
HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?
NVIDIA Japan
 
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
日本マイクロソフト株式会社
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
Daiyu Hatakeyama
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA Japan
 
20161121 open hyperscale#6
20161121 open hyperscale#620161121 open hyperscale#6
20161121 open hyperscale#6
ManaMurakami1
 
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AIDeep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
喜智 大井
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA Japan
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたRyo Sakamoto
 
PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」
betaEncoder
 
GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介
NVIDIA Japan
 
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
Amazon Web Services Japan
 

Similar to Chainer で Tensor コア (fp16) を使いこなす (20)

20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
 
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
GPUディープラーニング最新情報
GPUディープラーニング最新情報GPUディープラーニング最新情報
GPUディープラーニング最新情報
 
Volta は、Chainer で使えるの?
Volta は、Chainer で使えるの?Volta は、Chainer で使えるの?
Volta は、Chainer で使えるの?
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?HPC 的に H100 は魅力的な GPU なのか?
HPC 的に H100 は魅力的な GPU なのか?
 
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
 
20161121 open hyperscale#6
20161121 open hyperscale#620161121 open hyperscale#6
20161121 open hyperscale#6
 
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AIDeep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
 
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA TESLA V100・CUDA 9 のご紹介
 
GPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみたGPGPU deいろんな問題解いてみた
GPGPU deいろんな問題解いてみた
 
PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」
 
GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介
 
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
AWS Black Belt Online Seminar 2016 HPC分野でのAWS活用
 

More from NVIDIA Japan

NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA Japan
 
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
NVIDIA Japan
 
20221021_JP5.0.2-Webinar-JP_Final.pdf
20221021_JP5.0.2-Webinar-JP_Final.pdf20221021_JP5.0.2-Webinar-JP_Final.pdf
20221021_JP5.0.2-Webinar-JP_Final.pdf
NVIDIA Japan
 
開発者が語る NVIDIA cuQuantum SDK
開発者が語る NVIDIA cuQuantum SDK開発者が語る NVIDIA cuQuantum SDK
開発者が語る NVIDIA cuQuantum SDK
NVIDIA Japan
 
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワークNVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Japan
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
NVIDIA Japan
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなの
NVIDIA Japan
 
Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報
NVIDIA Japan
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
NVIDIA Japan
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
NVIDIA Japan
 
GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIA
NVIDIA Japan
 
GTC November 2021 – テレコム関連アップデート サマリー
GTC November 2021 – テレコム関連アップデート サマリーGTC November 2021 – テレコム関連アップデート サマリー
GTC November 2021 – テレコム関連アップデート サマリー
NVIDIA Japan
 
テレコムのビッグデータ解析 & AI サイバーセキュリティ
テレコムのビッグデータ解析 & AI サイバーセキュリティテレコムのビッグデータ解析 & AI サイバーセキュリティ
テレコムのビッグデータ解析 & AI サイバーセキュリティ
NVIDIA Japan
 
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
NVIDIA Japan
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
NVIDIA Japan
 
2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson活用によるAI教育2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson活用によるAI教育
NVIDIA Japan
 
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
NVIDIA Japan
 
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
NVIDIA Japan
 
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジにJetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
NVIDIA Japan
 
GTC 2020 発表内容まとめ
GTC 2020 発表内容まとめGTC 2020 発表内容まとめ
GTC 2020 発表内容まとめ
NVIDIA Japan
 

More from NVIDIA Japan (20)

NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
 
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
 
20221021_JP5.0.2-Webinar-JP_Final.pdf
20221021_JP5.0.2-Webinar-JP_Final.pdf20221021_JP5.0.2-Webinar-JP_Final.pdf
20221021_JP5.0.2-Webinar-JP_Final.pdf
 
開発者が語る NVIDIA cuQuantum SDK
開発者が語る NVIDIA cuQuantum SDK開発者が語る NVIDIA cuQuantum SDK
開発者が語る NVIDIA cuQuantum SDK
 
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワークNVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
 
NVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなの
 
Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報Magnum IO GPUDirect Storage 最新情報
Magnum IO GPUDirect Storage 最新情報
 
データ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラデータ爆発時代のネットワークインフラ
データ爆発時代のネットワークインフラ
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
 
GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIA
 
GTC November 2021 – テレコム関連アップデート サマリー
GTC November 2021 – テレコム関連アップデート サマリーGTC November 2021 – テレコム関連アップデート サマリー
GTC November 2021 – テレコム関連アップデート サマリー
 
テレコムのビッグデータ解析 & AI サイバーセキュリティ
テレコムのビッグデータ解析 & AI サイバーセキュリティテレコムのビッグデータ解析 & AI サイバーセキュリティ
テレコムのビッグデータ解析 & AI サイバーセキュリティ
 
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
 
2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson活用によるAI教育2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson活用によるAI教育
 
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
 
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
 
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジにJetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
 
GTC 2020 発表内容まとめ
GTC 2020 発表内容まとめGTC 2020 発表内容まとめ
GTC 2020 発表内容まとめ
 

Recently uploaded

FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 

Chainer で Tensor コア (fp16) を使いこなす

  • 1. Akira Naruse, Senior Developer Technology Engineer, 2018/12/15 Chainer で Tensor コア (fp16) を 使いこなす
  • 3. 3 最初におことわり… タイトル: • Chainer で Tensor コア (fp16) を使いこなす 中身: • ありとあらゆる手段を使い、Chainer で Tensor コア (fp16) を どこまで使いきれるかを、実験した
  • 4. 4 VOLTA TENSOR コア FP16/FP32 混合精度行列演算ユニット Tesla P100 Tesla V100 FP16 20 TFLOPS 125 TFLOPS (Tensor コア) FP32 10 TFLOPS 16 TFLOPS FP16 FP16 × + FP32 FP32 FP16 FP32
  • 5. 5 FP16 で学習して、精度は大丈夫? • 2 つのテクニック • ロス スケーリング • ロス値をスケールアップし、勾配消失を緩和 • ウェイト更新直前に、勾配値をスケールダウン • FP32 ウェイト更新 (FP16 と FP32 の併用) • Forward/Backward は FP16 で計算 • Update で FP32 を使用 Mixed Precision Training https://devblogs.nvidia.com/mixed-precision-training-deep-neural-networks/ 勾配値の分布 (*) FP16 にすると、多くの勾配値がゼロになってしまう
  • 6. 6 ロス スケーリングと FP32 ウェイト更新 勾配勾配勾配勾配勾配勾配勾配 損失 関数 誤差 Backward Forward Update 勾配をスケールダウンし (例: 1/10 倍)、 FP32 ウェイト (master) を更新し、 FP16 ウェイトにコピーする Backward 直前に誤差をスケールアップし (例: 10 倍)、勾配消失を回避する
  • 7. 7 FP16 で精度を維持する方法 • FP16 で学習しても、FP32 モデルとほぼ同じ精度 • 主要な DL フレームワークで利用可能 • TensorFlow • PyTorch • MxNet • Chainer Mixed Precision Training https://devblogs.nvidia.com/mixed-precision-training-deep-neural-networks/ Better
  • 8. 8 本日のお題 ResNet-50 のトレーニングを Tensor コア/fp16 を用いて Chainer で速くする (*) K. He, et.al., Deep Residual Learning for Image Recognition, arxive:1512.03385 Bottleneck architecture ResNet-34 ResNet-50
  • 9. 9 テスト環境 Machine: DGX Station GPU: Tesla V100-16GB CUDA: 9.2 cuDNN: 7.4.1 Chainer: v6.0.0b1+ CuPy: v6.0.0b1+
  • 10. 10 注意事項: その1 cuDNN のワークスペースサイズを大きめに設定する chainer.cuda.set_max_workspace_size(512*1024*1024) # 512MiB cuDNN の Auto Tuning を使う config.autotune = True (*) そうしないと、適切なアルゴリズムが選択されない、ことが多い cuDNN の高速 Batch Normalization 実装を使う config.cudnn_fast_batch_normalization = True (*) fp32 でも有効、オーバーフローの可能性有るので注意 cuDNN tips
  • 11. 11 注意事項: その2 モデル記述を fp16 向けに修正 • 入力: fp16 に cast • Initializer、Batch normalization: dtype に fp16 指定 本当は、fp16 モードをセットするだけで OK なんだけど.. CHAINER_DTYPE=float16 Chainer tips def forward(self, x, t): - h = self.bn1(self.conv1(x)) + h = self.bn1(self.conv1(F.cast(x, np.float16))) h = F.max_pooling_2d(F.relu(h), 3, stride=2) self.conv1 = L.Convolution2D(3, 64, 7, 2, 3, - initialW=initializers.HeNormal()) - self.bn1 = L.BatchNormalization(64) + initialW=initializers.HeNormal(dtype=np.float16)) + self.bn1 = L.BatchNormalization(64, dtype=np.float16)
  • 12. 12 性能比較 良い点: • BS: 128 以上で、fp32 より速い • BS: 256で学習可能 (fp32 だと メモリ不足) 悪い点: • BS: 64 以下だと、fp32 より遅い FP32 vs. FP16 0 100 200 300 400 500 600 700 800 900 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 Better
  • 13. 13 TRAINING ITERATION CPU の仕事 • IO: 入力画像の前処理 (Decode, Augmentation) • Forward/Backward/Update: 計算グラフ管理, メモリ管理, GPU カーネル投入 IO Forward Backward Update GPU の仕事 • Forward/Backward/Update: CPU から投入されたカーネルを実行
  • 14. 14 性能比較 良い点: • BS: 128以上で、fp32 より速い • BS: 256で学習可能 (fp32 だと メモリ不足) 悪い点: • BS: 64以下だと、fp32 より遅い FP32 vs. FP16 0 100 200 300 400 500 600 700 800 900 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 Better
  • 15. 15 NVVP で挙動を確認 (FP32, BS: 64) 高い GPU 稼働率 FWD BWD UPDIO CPU FWD BWD GPU 拡大
  • 16. 16 NVVP で挙動を確認 (FP32, BS: 64) 拡大図 高い GPU 稼働率 FWD BWD
  • 17. 17 NVVP で挙動を確認 (FP16, BS: 64) GPU稼働率が低い FWD BWDIO CPU FWD BWDGPU Tensor コア使用で GPU 処理は速くなった。しかし、CPU の処理が間に合わない
  • 18. 18 NVVP で挙動を確認 (FP16, BS: 64) 拡大図 GPU 稼働率が低い FWD BWD
  • 19. 19 対策: CPU の負荷を減らす IO 処理を高速化、別スレッドで実行 • NVIDIA DALI GPU 操作回数、GPU カーネル数を削減 • Batched weight update、 Fused Bnorm/ReLu、 NHWC format 計算グラフ管理負荷を削減 • Chainer static_graph
  • 20. 20 NVIDIA DALI https://github.com/NVIDIA/DALI (オープンソース) 前処理は別スレッドで実行 一部前処理は GPU 利用して加速 Chainer、DALI 対応済 (experimental) • 詳しくは、examples/imagenet を参照
  • 21. 21 NVIDIA DALIの効果 良い点: • BS: 64以上で、fp32 より速い • BS: 128 はBS: 256 とほぼ同性能 悪い点: • BS: 32以下だと、fp32 より遅い 0 100 200 300 400 500 600 700 800 900 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 fp16 (+dali) Better
  • 22. 22 NVIDIA DALI の効果確認 (FP16, BS: 64) IO 処理は、他とオーバーラップ FWD BWD FWD BWD IO by DALI (next) CPU GPU 依然として、CPU の処理が間に合っていない
  • 23. 23 対策: CPU の負荷を減らす IO 処理を高速化、別スレッドで実行 • NVIDIA DALI GPU 操作回数、GPU カーネル数を削減 • Batched weight update、 Fused Bnorm/ReLu、 NHWC format 計算グラフ管理負荷を削減 • Chainer static_graph
  • 24. 24 BATCHED WEIGHT UPDATE Chainer optimizer は、レイヤー毎(より正確にはパラメータ毎)に、重みを更新 • 多数の GPU カーネル起動 → CPU 負荷大 Single GPU カーネルで、全ての重みを更新 (batched_update) Chainer #5841 PR中 update update CPU GPU
  • 25. 25 FUSED BNORM/RELU • cuDNN 7.4 から導入 • Fp16 and NHWC フォーマット (後述) のときに利用可能 • レイヤーの自動融合は大変。 bnorm_add_relu モジュールを試作。 モデル記述を修正。 GPU カーネル数の削減、メモリアクセス量を削減 試作
  • 26. 26 NHWC FORMAT • NCHW だと、Convolution 前後 で、合計 3 回の Tensor Transpose が必要 • NHWC なら、Transpose 不要 → GPU カーネル数削減 • Chainer は NCHW only • NHWC 専用の Convolution/Bnorm モジュール を試作 cuDNN Convolution for TensorCore: NHWC format で高い性能を発揮 NCHW NHWC 試作
  • 27. 27 BATCHED+FUSED+NHWC の効果 良い点: • 常に fp32 より速い • BS: 256 で、1200 imgs/sec 悪い点 (相対的に): • BS: 32は、BS: 256 の 1/3 の 性能0 200 400 600 800 1000 1200 1400 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 (+dali) fp16 (+nhwc, fused, batched) Better
  • 28. 28 効果確認 (FP16, BS: 64) NHWC+FUSED+BATCHED FWD BWD FWD BWD IO by DALI (next) CPU GPU CPU 負荷を減らしたが、GPU 時間も NHWC+FUSED で短縮 → まだ GPU に空きがある
  • 29. 29 対策: CPU の負荷を減らす IO 処理を高速化、別スレッドで実行 • NVIDIA DALI GPU 操作回数、GPU カーネル数を削減 • Batched weight update、 Fused Bnorm/ReLu、 NHWC format 計算グラフ管理負荷を削減 • Chainer static_graph
  • 31. 31 STATIC_GRAPHの効果 良い点: • BS: 32/64 の性能改善 悪い点: • BS: 128 以上で実行不可 (メモリ使用量が増える?) 0 200 400 600 800 1000 1200 1400 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 (+nhwc, fused, batched) fp16 (+static_graph) Better
  • 32. 32 効果確認 (FP16, BS: 64) Static_graph FWD BWD FWD BWD IO by DALI (next) CPU GPU やっと、「CPU 処理時間 < GPU 処理時間」、になった
  • 33. 33 ここまでのまとめ fp32 の3倍の性能を達成 (最大で) • DALI • Batched weight update • Fused Bnorm/ReLu • NHWC format • Static_graph Backend が python でも、ここまで 速くできる Tensor コア/fp16 を用いた ResNet-50 トレーニング 0 200 400 600 800 1000 1200 1400 bs:32 bs:64 bs:128 bs:256 Images/sec fp32 fp16 (base) fp16 (best) Better ChainerXで 速くなる?
  • 34. 34 何故 “BS: 32” を速くしたいのか Goal: ImageNet+ResNet50 with 4096 GPUs Processor DL framework Time Microsoft Tesla P100 x8 Caffe 29 hours Facebook Tesla P100 x256 Caffe2 1 hour Google TPUv2 x256 TensorFlow 30 mins PFN Tesla P100 x1024 Chainer 15 mins Tencent Tesla P40 x2048 TensorFlow 6.6 mins SONY Tesla V100 x2176 NNL 3.7 mins Google TPUv3 x1024 TensorFlow 2.2 mins
  • 35. 35 LARGE MINI-BATCH PROBLEM Local BS: 32 でも、4096 GPU だと、 Global BS: 128K ImageNet + ResNet50だと、Global BS: 32~64K でも、validation error < 25% を出せるようになってき たが.. SGD の限界? ImageNet, ResNet50, Local BS:32 (*) P. Goyal, et.al., Facebook, “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour” Better
  • 36. 36 SGD 以外の選択肢 Backprop で得られる「勾配ベクトル」の向きは、 それほど正しくない KFAC: フィッシャー行列を近似計算して勾配補正 • 学習の「向き」が SGD より正しくなる (反復数減) • 1 反復あたりの計算量が増える Global BS: 128K でも、75% の validation accuracy を実証 • BS 16K 以下なら、30~35 epoch で収束 (SGD は90 epoch 必要) K. Osawa, et.al., “Second-order Optimization Method for Large Mini-batch: Training ResNet-50 on ImageNet in 35 Epochs” (*) 東工大 横田研・松岡研との共同研究 ImageNet + ResNet50 Better Distributed KFAC optimizer on Chainer