Zero Bubble Pipeline Parallelism
Pipeline parallelism is one of the key components for large-scale distributed
training, yet its efficiency suffers from pipeline bubbles which were deemed
inevitable. In this work, we introduce a scheduling strategy that, to our
knowledge, is the first to successfully achieve zero pipeline bubbles under
synchronous training semantics. The key idea behind this improvement is to
split the backward computation into two parts, one that computes gradient for
the input and another that computes for the parameters. Based on this idea, we
handcraft novel pipeline schedules that significantly outperform the baseline
methods. We further develop an algorithm that automatically finds an optimal
schedule based on specific model configuration and memory limit. Additionally,
to truly achieve zero bubble, we introduce a novel technique to bypass
synchronizations during the optimizer step. Experimental evaluations show that
our method outperforms the 1F1B schedule up to 23% in throughput under a
similar memory limit. This number can be further pushed to 31% when the memory
constraint is relaxed. We believe our results mark a major step forward in
harnessing the true potential of pipeline parallelism. We open sourced our
implementation based on the popular Megatron-LM repository on
https://github.com/sail-sg/zero-bubble-pipeline-parallelism.
65addffdb68db4f26e0eca49
Penghui Qi
claimed_verified
2024-01-22T10:28:51.296Z
63885f1d0bebb233d8ad6e5b
https://cdn-avatars.huggingface.co/v1/production/uploads/1669881620925-noauth.jpeg
Penghui Qi
user
QPHutu
65addffdb68db4f26e0eca4a
Xinyi Wan
65addffdb68db4f26e0eca4b
Guangxing Huang
admin_assigned
2024-01-22T11:39:27.407Z
6429a8688852afdf89be7b50
/avatars/093a68dda97904271700359b3f6684ef.svg
huangguangxing
user
huangguangxing
65addffdb68db4f26e0eca4c
Min Lin
claimed_verified
2024-01-22T12:00:44.739Z
6565d5fd656151d58b1d9afb
/avatars/0c416ea74347c6b5bd27f49aec309c48.svg
Min Lin
user
mavenlin
Zero Bubble Pipeline Parallelism
Pipeline parallelism is one of the key components for large-scale distributed
training, yet its efficiency suffers from pipeline bubbles which were deemed
inevitable. In this work, we introduce a scheduling strategy that, to our
knowledge, is the first to successfully achieve zero pipeline bubbles under
synchronous training semantics. The key idea behind this improvement is to
split the backward computation into two parts, one that computes gradient for
the input and another that computes for the parameters. Based on this idea, we
handcraft novel pipeline schedules that significantly outperform the baseline
methods. We further develop an algorithm that automatically finds an optimal
schedule based on specific model configuration and memory limit. Additionally,
to truly achieve zero bubble, we introduce a novel technique to bypass
synchronizations during the optimizer step. Experimental evaluations show that
our method outperforms the 1F1B schedule up to 23% in throughput under a
similar memory limit. This number can be further pushed to 31% when the memory
constraint is relaxed. We believe our results mark a major step forward in
harnessing the true potential of pipeline parallelism. We open sourced our
implementation based on the popular Megatron-LM repository on
https://github.com/sail-sg/zero-bubble-pipeline-parallelism.
A novel scheduling strategy achieves zero pipeline bubbles in synchronous training by splitting backward computation and bypassing synchronizations during optimization, significantly improving throughput.
pipeline parallelism pipeline bubbles synchronous training backward computation pipeline schedules memory limit optimizer step throughput