Wang, Minjie, Chien-chin Huang, and Jinyang Li. "Supporting very large models using automatic dataflow graph partitioning." Proceedings of the Fourteenth EuroSys Conference 2019. 2019.
@inproceedings{wang2019supporting, title={Supporting very large models using automatic dataflow graph partitioning}, author={Wang, Minjie and Huang, Chien-chin and Li, Jinyang}, booktitle={Proceedings of the Fourteenth EuroSys Conference 2019}, pages={1--17}, year={2019} }
Tofuと名付けたモデル分割手法を提案しています。所望の分割数になるまでoperatorの2分割を繰り返します。
背景
- CNNモデルが巨大化、GPUメモリが不足する
どんなもの?
- 通信コストが小さくなるように計算グラフを分割する
- (通信コストが小さいと順/逆伝播の実行時間も小さくなる, 通信用のメモリを削減できる)
先行研究と比べてどこがすごい?
技術や手法のキモはどこ?
- operationをラムダ関数に書き起こし、operationをどう分割するのか? を 2つのケースで考える
- グラフ全体を2分割するのを、繰り返すことで2分割以上の分割に対応する
どうやって有効だと検証した?
- recursiveにより既存手法(DP)よりも計算時間が速い
- WResNet-152で 8 hours → 8.3 hours
- RNN-19で >24 hours → 66.6 seconds
- また8core実行時の比較手法として
- WResNet, RNNの学習において、提案手法はidealの60-98%の性能であった(!!)
- また他の計算グラフ分割手法と比較して最もバッチごとの実行時間が最小だった
議論はある?
- 論文中TDLを持ち出した理由(利点)がよくわからなかった
- 2分割ベースが最適解とどれほど乖離があるのかが気になる
- 単純にidealと比べて性能良すぎない!?という思いも
次に読むべき論文は?
- DP(Dynamic Programming)によるテンソル分割方法の探索
- (2018, 87 cited) Exploring Hidden Dimensions in Parallelizing Convolutional Neural Networks. https://proceedings.mlr.press/v80/jia18a/jia18a.pdf?ref=https://codemonkey.link
- (2018, 242 cited) Beyond Data and Model Parallelism for Deep Neural Networks. https://proceedings.mlsys.org/paper/2019/file/c74d97b01eae257e44aa9d5bade97baf-Paper.pdf
- (2017, 422 cited) Tetris: Scalable and efficient neural network acceleration with 3d memory. https://dl.acm.org/doi/pdf/10.1145/3037697.3037702