算法动画 · 神经网络
流水线并行动画
展示流水线并行如何通过微批次交错执行减少模型并行的空闲气泡,提高 GPU 利用率。
Pipeline Parallelism
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
未激活·当前高亮(8 个元素)
1
模型按层切分到 4 个 GPU 上,每个 GPU 负责连续的几层(Stage 1-4)。
第 1 步 / 共 714%
🧠AI 冷知识
你知道吗?
这些有趣的 AI 小知识可能让你大吃一惊
💡
流水线上的气泡流水线并行把模型按层切成多个阶段(stage),每个阶段放在不同GPU上,用"微批次"(micro-batch)填充流水线。它的核心挑战是"气泡"(bubble)——流水线填充和排空时GPU空闲的时间。GPipe的方案是把一个大batch切成M个微批次,让流水线尽可能充满;气泡比例约为(P-1)/M,P为阶段数。PipeDream则采用"1F1B"调度(一个前向一个反向交替),进一步减少气泡和显存占用。当微批次数远大于阶段数时,气泡几乎可以忽略。
来源:Huang et al., "GPipe: Efficient Training of Giant Neural Networks", 2019
一句话总结
💡
流水线并行将模型按层分段到不同设备,通过微批次流水线执行重叠计算与通信提升利用率。
常见误区
这些坑别踩
✗
误区 1
流水线并行各设备同时算同一 batch。
✓
正确理解
它用微批次让不同设备同时处理不同微批次,形成流水。
✗
误区 2
流水线并行没有 bubble。
✓
正确理解
简单流水线存在填充和排空 bubble,需 GPipe/1F1B 等调度减少空闲。
✗
误区 3
流水线并行能完全消除通信开销。
✓
正确理解
段间需传输激活,通信开销依然存在,只是通过重叠隐藏。