Submit Search
Upload
分散学習のあれこれ~データパラレルからモデルパラレルまで~
•
4 likes
•
4,514 views
H
Hideki Tsunashima
Follow
分散学習についてから始まり、データパラレルとモデルパラレルの説明、Chainerでの両者の実装についてのスライドとなっております。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 48
Download now
Download to read offline
Recommended
backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
Deep Learning JP
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
Recommended
backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
Optimizer入門&最新動向
Optimizer入門&最新動向
Motokawa Tetsuya
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
Deep Learning JP
時系列予測にTransformerを使うのは有効か?
時系列予測にTransformerを使うのは有効か?
Fumihiko Takahashi
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Yusuke Uchida
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
Shota Imai
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
cvpaper. challenge
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
Deep Learning JP
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
モデル高速化百選
モデル高速化百選
Yusuke Uchida
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
Koichiro Mori
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
Yusuke Uchida
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
Deep Learning JP
研究分野をサーベイする
研究分野をサーベイする
Takayuki Itoh
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Deep Learning JP
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)
Deep Learning JP
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
Masahiro Suzuki
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
More Related Content
What's hot
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
tmtm otm
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
Shota Imai
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
cvpaper. challenge
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
Deep Learning JP
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
モデル高速化百選
モデル高速化百選
Yusuke Uchida
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
Koichiro Mori
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
Yusuke Uchida
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
Deep Learning JP
研究分野をサーベイする
研究分野をサーベイする
Takayuki Itoh
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Deep Learning JP
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
Yusuke Uchida
[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)
Deep Learning JP
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
Masahiro Suzuki
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
What's hot
(20)
Data-Centric AIの紹介
Data-Centric AIの紹介
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
全力解説!Transformer
全力解説!Transformer
モデル高速化百選
モデル高速化百選
マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
研究分野をサーベイする
研究分野をサーベイする
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
[DL輪読会]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Similar to 分散学習のあれこれ~データパラレルからモデルパラレルまで~
2017年のFPGA Community活動について
2017年のFPGA Community活動について
Mr. Vengineer
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kenta Oono
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
y-uti
Mesosで学習タスクの実行
Mesosで学習タスクの実行
祐理 大野
IGGG勧誘スライド2016 web版
IGGG勧誘スライド2016 web版
IGGGorg
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料
直久 住川
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
griddb
DLLAB COMMUNITY UPDATE 201804
DLLAB COMMUNITY UPDATE 201804
Hirono Jumpei
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
Daiyu Hatakeyama
Raspberrypitraining20171027
Raspberrypitraining20171027
Kiyoshi Ogawa
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行
智啓 出川
ICDE 2014参加報告資料
ICDE 2014参加報告資料
Masumi Shirakawa
PFN x Microsoft Alliance
PFN x Microsoft Alliance
Hirono Jumpei
AlphaGo Zero 解説
AlphaGo Zero 解説
suckgeun lee
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 Intro
Takeshi Akutsu
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを
naoto teshima
The SGGX Microflake Distribution 実装
The SGGX Microflake Distribution 実装
Takashi Imagire
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
Hirono Jumpei
Similar to 分散学習のあれこれ~データパラレルからモデルパラレルまで~
(20)
2017年のFPGA Community活動について
2017年のFPGA Community活動について
ディープラーニング最近の発展とビジネス応用への課題
ディープラーニング最近の発展とビジネス応用への課題
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
Mesosで学習タスクの実行
Mesosで学習タスクの実行
IGGG勧誘スライド2016 web版
IGGG勧誘スライド2016 web版
ACRiウェビナー_ChipTip Technology様ご講演資料
ACRiウェビナー_ChipTip Technology様ご講演資料
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
日本発オープンソース!! スケールアウト型データベース GridDB入門 ~ GitHubからダウンロードして使ってみましょう ~
DLLAB COMMUNITY UPDATE 201804
DLLAB COMMUNITY UPDATE 201804
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
Raspberrypitraining20171027
Raspberrypitraining20171027
技術系大学におけるGPU教育の一試行
技術系大学におけるGPU教育の一試行
ICDE 2014参加報告資料
ICDE 2014参加報告資料
PFN x Microsoft Alliance
PFN x Microsoft Alliance
AlphaGo Zero 解説
AlphaGo Zero 解説
みんなのPython勉強会#59 Intro
みんなのPython勉強会#59 Intro
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを
The SGGX Microflake Distribution 実装
The SGGX Microflake Distribution 実装
DLL#3 Microsoft Community & AI Update
DLL#3 Microsoft Community & AI Update
分散学習のあれこれ~データパラレルからモデルパラレルまで~
1.
@maguroIsland 分散学習のあれこれ ~データパラレルから モデルパラレルまで~
2.
2 このスライドは2019年8/5、6に開催された 「第一回ディープラーニング分散学習ハッカソン」 にてご教授いただいた内容を元に作成しております この場を借りて主催である “東京工業大学学術国際情報センター様” “GPUコンピューティング研究会様” “エヌビディア合同会社様” 共催である “Chainer User Group様” “TensorFlow
User Group様” に感謝の意を表します http://gpu-computing.gsic.titech.ac.jp/node/100
3.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 3
4.
Contents ⚫ 分散学習とは? データパラレル
モデルパラレル 4
5.
分散学習とは? 5 Cat 10 Days...
6.
6 ぶいひゃく ばたけ NVIDIA
7.
分散学習とは? 7 ⚫ 複数のGPUを使ってニューラルネットワークを殴り倒して 計算時間を削減しようというもの Cat 1minut(WWO)
8.
分散学習とは? 8 推論 ⚫ データパラレル 同じモデルを載せた複数のGPUそれぞれに並列してデータを 流す分散処理方法
9.
分散学習とは? 9 ⚫ モデルパラレル 1つのGPUでは載りきらないようなデカいモデルをノード ごとや層ごとに分割することで計算可能にする分散学習方法 Cat
10.
⚫ データパラレル Pros ✓ 速度向上! ⚫
モデルパラレル Pros ✓ 1GPUでは載りきらず訓練出来なかったモデルの訓練が 可能になる! 分散学習とは? 10
11.
⚫ データパラレル Pros ✓ 速度向上! Cons ◼
mini-batchsize増加による精度の悪化 ⚫ モデルパラレル Pros ✓ 1GPUでは載りきらず訓練出来なかったモデルの訓練が 可能になる! Cons ◼ 場合によっては訓練速度が低下する[1] ◼ かなり実装がややこしく、超簡単なラッパーがほぼない 分散学習とは? 11
12.
分散学習とは? 12 ⚫ データパラレル ◼ mini-batchsize増加による精度の悪化 →学習率を上げるなどの工夫をすることで精度の悪化を防ぐ 様々な工夫が必要[2,
3] →PFNが32kバッチ※までは精度低下を防いでいる[4] →ImageNet学習速度世界一争いは実は計算資源投入だけで は成り立たない![5] ※1024GPUで1GPUあたり32ミニバッチ in ImageNet
13.
分散学習とは? 13 ⚫ モデルパラレル ◼ 場合によっては訓練速度が低下する →分割方法によってはGPU間通信※が多く発生し、それが ボトルネックとなる ◼
かなり実装がややこしい上、超簡単なラッパーがない →モデル分割方法は複数ある上、どこで分割するかの選択肢 はネットワーク構造よって多岐にわたり、設計が難しい →Chainerではlayer-wiseとchannel-wiseな分割が公式で サポートされているが、発展途上の分散学習方法[1, 6] ※GPU内通信は900Gbpsに対し、GPU間は100Gbpsほど
14.
分散学習とは? 14 より詳しくわかりやすい基礎講座資料はこちら! [7] 分散学習基礎講座,“https://www.cc.u-tokyo.ac.jp/events/lectures/111/20190124-1.pdf“
15.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 15
16.
Contents ⚫ Chainerにおける分散学習 データパラレル編
モデルパラレル編 Optuna編 16
17.
⚫ データパラレル編 用意するもの ✓ ChainerMN(Chainer5.0以降はChainerMNは同梱) ✓
NCCL(マルチGPUの集合通信ライブラリ) ✓ OpenMPI(並列コンピューティング用ライブラリ) ✓ Multiple GPU(2~)※ ちなみにGPU数増加に伴う通信 などでの計算速度低下はChainer が最も少ない(らしい)[8] ※ただし、GPU同士の接続が通信が遅いケーブルで繋がれて いると計算速度の向上度合は低い Chainerにおける分散学習 17
18.
18 GPU情報を格納する オブジェクトを作成 最初のGPU0番にのみデータセット を載せた後に各GPUに分配する 既存のオプティマイザをマルチノード 用のモジュールでラップする
19.
19 各GPUにモデルを載せる ログの保存などはGPU0番のみ 行うように変更
20.
⚫ データパラレル編 既存のコードにたった5ステップ手を加えるだけ! (慣れたら作業時間は2分くらい) (実行例) モデル:DCGAN データセット:CIFAR-10 epoch:200 batchsize:256 x
32GPU=8192 GPU:Tesla V100 ノード間接続:InfiniBand Chainerにおける分散学習 20
21.
⚫ データパラレル編 既存のコードにたった5ステップ手を加えるだけ! (慣れたら作業時間は2分くらい) (実行例) モデル:DCGAN データセット:CIFAR-10 epoch:200 batchsize:256 x
32GPU=8192 GPU:Tesla V100 ノード間接続:InfiniBand ※データパラレルをすると早くなるという例であってこのよう なラージバッチでは訓練はうまくいきません 様々な工夫やバッチサイズの調整が必要です Chainerにおける分散学習 21 訓練時間 1分30秒!!※
22.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 22
23.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割[7] ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 23 Cat
24.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割[1] ➢ チャネル方向の分割 ➢ 空間方向の分割 etc... Chainerにおける分散学習 24 Cat
25.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割[6] ➢ 空間方向の分割 etc... Chainerにおける分散学習 25 Cat ch w h
26.
⚫ モデルパラレル編 モデルパラレルは分割方法が多岐にわたる ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割[9] etc... Chainerにおける分散学習 26 Cat ch w h
27.
⚫ モデルパラレル編 今日コードで紹介するのはConvのチャネル方向の分割 Chainerでは最も簡単に実装が可能 Chainerにおける分散学習 27 Cat ch w h
28.
⚫ モデルパラレル編 今日コードで紹介するのはConvのチャネル方向の分割 Chainerでは最も簡単に実装が可能 Chainerにおける分散学習 28
29.
29 GPU情報を格納する オブジェクトを作成 0番以外のGPUのデータを空にする 既存のオプティマイザをマルチノード 用のモジュールでラップする (ただし、これはchannel-wiseのモデ ルパラレルではあってもなくても動く)
30.
30 ログの保存などはGPU0番のみ 行うように変更 繰り返し用データセットをマルチノード 用のモジュールでラップ
31.
31 普通のConvをラップする クラスを定義
32.
32 Convをマルチノード用Convに置き換えて communicator(GPU情報を格納する オブジェクト)を読み込ますだけ!
33.
⚫ モデルパラレル編 既存のコードに6ステップ手を加えるだけ! (多そうに見えるがコピペと置換なので作業時間は5分くらい) やった!これでモデルパラレル分散学習が出来る!! Chainerにおける分散学習 33
34.
⚫ モデルパラレル編 既存のコードに6ステップ手を加えるだけ! (多そうに見えるがコピペと置換なので作業時間は5分くらい) やった!これでモデルパラレル分散学習が出来る!! But... チャンネル方向のモデルパラレルは一度処理したもの全てを 集約する必要があるため、GPU間通信がボトルネックに。。。 4GPUを使って分割するとDCGAN(CIFAR-10)では2倍弱 VGG-16(CIFAR-10)では3倍弱1GPUに比べて時間がかかる Chainerにおける分散学習 34
35.
⚫ Optuna編 Optunaを分散学習に用いる際は、データパラレルの場合は シンプルに複数GPUで計算した値をバックワードするために 集約する際のロスを集計して最適化を行う が、しかし。。。 Chainerにおける分散学習 35
36.
⚫ Optuna編 実行する予定だったのですが、うまく動かせていないです 以下にOptunaを分散学習環境下で実行するためのページを 貼っておきますので、興味ある人はそこを見てください。。。 (Advent Calenderでコード解説を行おうと思っているので、 そこでやる予定です) [10]東工大
第1回 ディープラーニング分散学習ハッカソン Optuna資料リンク集” https:// gist.github.com/toshihikoyanase/e7a2b2635fddfda91064e2e21a106987” Chainerにおける分散学習 36
37.
Contents ⚫ 分散学習とは? ⚫ Chainerにおける分散学習 ⚫
PyTorchにおける分散学習 ⚫ おまけ 37
38.
Contents ⚫ おまけ マルチGPUでのBatch
Normalization モデルパラレルで速度は速くなるか!? 38
39.
⚫ マルチGPUにおけるBatch Normalization Batch
Normalizationはバッチ数ごとの平均や分散を計算し て正規化を行う処理である しかしデータパラレルではどうだろうか? →各GPUにデータがばらばらに割り振られているため、各 GPUが計算する平均や分散が変わってしまう おまけ 39
40.
⚫ マルチGPUにおけるBatch Normalization Batch
Normalizationはバッチ数ごとの平均や分散を計算し て正規化を行う処理である しかしデータパラレルではどうだろうか? →各GPUにデータがばらばらに割り振られているため、各 GPUが計算する平均や分散が変わってしまう 各GPUのデータを引っ張ってきて総ミニバッチを用いた Batch Normalizationを行う これは非常に簡単!(公式実装に感謝!) おまけ 40
41.
41 実装は複雑で長いので省略するが、この公式 実装のクラスを読み込むだけ!
42.
42 Batch Normをマルチノード用Batch Norm に置き換えてcommunicator(GPU情報を格 納するオブジェクト)を読み込ますだけ!
43.
⚫ マルチGPUにおけるBatch Normalization たった2ステップでデータパラレルのBatch
Normaliationが 実装できてしまった!(改めて公式実装に感謝!) 気になる計算時間はDCGAN(CIFAR-10)程度では10%程 計算時間が増大する程度であまり気になるほどではないが、 ImageNetや1024x1024画像になるとGPU間通信がボトル ネックとなりさらに遅くなる可能性はあり おまけ 43
44.
⚫ モデルパラレルで速度は速くなるか!? 先に結論を述べてしまうと”今は”No しかし、分割方法によっては計算速度の低下を緩和させるこ とは可能である 例えば、先ほどのchannel-wiseの分割は全ての値を一度全 GPUで共有する作業が必要だったので、GPU間通信がボトル ネックとなってしまっていた おまけ 44
45.
⚫ モデルパラレルで速度は速くなるか!? ➢ ノードごとの分割 ➢
層ごとの分割 ➢ チャネル方向の分割 ➢ 空間方向の分割[9] etc... おまけ 45 Cat ch w h
46.
⚫ モデルパラレルで速度は速くなるか!? 今は基本的に3x3Convが主流となっているので、3x3Conv を考えてみましょう おまけ 46 右図のように他のGPUに 載っている画素にまたがる ようにConvを掛けたい場合 は境界部±2個分の値だけを 通信すればよい →1024x1024の画像など では顕著に高速化が 見込める可能性がある!
47.
1.Parallel Convolution,” https://github.com/chainer/chainer/tree/master/example s/chainermn/parallel_convolution” 2.Don’t
Decay the Learning Rate, Increase the Batch Size,” https://openrevi ew.net/pdf?id=B1Yy1BxCZ” 3.Scaling SGD Batch Size to 32K for ImageNet Training,” https://www2.eecs.b erkeley.edu/Pubs/TechRpts/2017/EECS-2017-156.pdf” 4.Preferred Networks、深層学習の学習速度において世界最速を実現,” https://ww w.preferred-networks.jp/ja/news/pr20171110” 5.世界最高速を達成!ディープラーニングの高速化技術を開発,” https://pr.fujitsu.co m/jp/news/2019/04/1.html” 6.Model Parallel on ChainerMN,” https://docs.chainer.org/en/stable/chainermn/ model_parallel/model_parallel_on_chainermn.html” 7.分散学習基礎講座,https://www.cc.u-tokyo.ac.jp/events/lectures/111/20190124-1.p df 8.分散深層学習パッケージ ChainerMN 公開,” https://research.preferred.jp/2017/0 5/chainermn-beta-release/” 9.BEYOND DATA AND MODEL PARALLELISM FOR DEEP NEURAL NETWORK S, “https://www.sysml.cc/doc/2019/16.pdf” 10.東工大 第1回 ディープラーニング分散学習ハッカソン Optuna資料リンク集” https://gist.github.com/toshihikoyanase/e7a2b2635fddfda91064e2e21a106987” 参考文献 47
48.
48 Thank you for
attention
Download now