torchgpipe: On-the-fly Pipeline Parallelism for Training Giant Models
Chiheon Kim, Heungsub Lee, Myungryong Jeong, Woonhyuk Baek, Boogeon, Yoon, Ildoo Kim, Sungbin Lim, Sungwoong Kim

TL;DR
This paper introduces torchgpipe, a PyTorch library enabling efficient micro-batch pipeline parallelism with checkpointing, facilitating training of large models in define-by-run environments.
Contribution
The paper presents a set of design components for pipeline-parallel gradient computation in PyTorch's eager mode, enabling practical large-model training.
Findings
Efficient pipeline parallelism demonstrated on AmoebaNet-D and U-Net.
Library is ready-to-use and publicly available.
Achieves improved training efficiency for giant models.
Abstract
We design and implement a ready-to-use library in PyTorch for performing micro-batch pipeline parallelism with checkpointing proposed by GPipe (Huang et al., 2019). In particular, we develop a set of design components to enable pipeline-parallel gradient computation in PyTorch's define-by-run and eager execution environment. We show that each component is necessary to fully benefit from pipeline parallelism in such environment, and demonstrate the efficiency of the library by applying it to various network architectures including AmoebaNet-D and U-Net. Our library is available at https://github.com/kakaobrain/torchgpipe .
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Neural Network Applications · Multimodal Machine Learning Applications · Generative Adversarial Networks and Image Synthesis
MethodsGPipe · Concatenated Skip Connection · *Communicated@Fast*How Do I Communicate to Expedia? · Max Pooling · Convolution · U-Net
