困难并行策略并行策略流水线并行面试高频
流水线并行的 bubble(气泡)是什么?如何减少?
7 0 0
参考答案
**Bubble(流水线气泡)**:流水线并行把模型层分到多个 stage(卡),数据依次流过。在流水线填充(warm-up)和排空(cool-down)阶段,部分 stage 无事可做而空闲,这些空闲时间就是 bubble,降低 GPU 利用率。 **bubble 比例**:朴素流水线的 bubble 约为 (p−1)/(m+p−1),p 为 stage 数,m 为 micro-batch 数。 **减少手段**: 1. **增大 micro-batch 数 m**:把一个 batch 切成更多 micro-batch 喂入流水线,m≫p 时 bubble 占比 (p−1)/m 变小。这是最主要的手段。 2. **改进调度**: - **GPipe**:所有 micro-batch 先全部前向再全部反向,bubble 较大且激活显存峰值高。 - **1F1B(PipeDream)**:交错执行前向和反向(one-forward-one-backward),稳态下每个 stage 持续有活干,显存峰值也更低。 - **Interleaved 1F1B(Megatron)**:每卡负责多个不连续的层块,进一步缩小 bubble。 3. **与其他并行组合**:用 TP 减少需要的 PP stage 数。 **权衡**:micro-batch 太多会增加调度开销和激活重计算成本;1F1B 在显存和 bubble 间取得较好平衡。
讨论区(0)
还没有评论,来做第一个发言的人吧