跳到主要内容

计算通信 Overlap

各并行策略 overlap 潜力差多少、临界条件是什么、实现需要哪三个前提

核心要点

  • Overlap 可行的三个必要条件
  • 完全 Overlap 的临界条件 ($T_{\text{comm}} \le T_{\text{compute}}$)
  • TP 关键路径阻塞 → SP 打开 Overlap 窗口的机制
  • DP 反向 Bucket Overlap 为何收益最高
  • 各并行策略的典型 Overlap 率与限制因素

Overlap 让通信延迟被计算时间隐藏,是大规模并行的核心优化手段。各并行策略的 Overlap 潜力差别很大:DP 最高 (0.70.95), TP 标准最低 (00.3), SP/EP 居中。

Overlap 为什么可行?

Overlap 依赖三个并发条件同时成立

  • 独立执行单元:计算核 (Tensor Core / Cube) 与 DMA 引擎 (Copy Engine / GDMA / CDMA) 是独立硬件模块,互不抢占
  • 异步发起通信:软件通过异步 API 发出请求后立即返回,DMA 后台执行,计算核继续运行
  • 多 Stream 并行:CUDA Stream 允许不同 Stream 上的操作在不同硬件单元同时推进,仅在数据依赖处显式同步

实现 Overlap 的三个必要前提

  1. 数据依赖解耦:通信输入已就绪,通信结果不是当前计算的即时输入
  2. 硬件并发能力:芯片有独立 DMA 引擎,能与计算核同时工作
  3. 软件异步调度:通信操作提前异步发出,不阻塞等待

Overlap 节省多少时间?临界条件是什么?

统一公式

$$\begin{equation} T_{\text{eff}} = T_{\text{compute}} + (1 - r) \cdot T_{\text{comm}} \label{eq:par-overlap-effective-latency} \end{equation}$$

$r \in [0, 1]$ 是 overlap 率。三种情况:

场景公式说明
无 overlap ($r = 0$)$T_{\text{eff}} = T_{\text{compute}} + T_{\text{comm}}$串行执行,通信完全暴露
完全 overlap ($r = 1$)$T_{\text{eff}} = T_{\text{compute}}$通信被隐藏
部分 overlap$T_{\text{eff}} = T_{\text{compute}} + (1-r) T_{\text{comm}}$实际最常见

@tbl-overlap-01 Overlap 的理论收益

完全 overlap 的临界条件$T_{\text{comm}} \le T_{\text{compute}}$。若通信超过计算时间,即使硬件支持并发,通信延迟仍在关键路径上:

$$\begin{equation} T_{\text{eff}} = T_{\text{comm}} + \max(0,\, T_{\text{comm}} - T_{\text{compute}}) \label{eq:par-overlap-comm-bound} \end{equation}$$

计算量越大、通信量越小,overlap 收益越高

为什么 TP 标准 AllReduce 难以 overlap?

TP AllReduce 在当前层与下一层之间的关键路径上,标准方式无法直接 overlap:

输入 X
→ [列并行 Linear W1]
→ GeLU
→ [行并行 Linear W2] 各设备产生部分积
→ AllReduce 合并部分积
→ 输出 (下一层输入)
  • 当前层计算必须等 AllReduce 完成才有有效输出
  • 下一层计算必须等 AllReduce 完成才能开始

数据依赖直接阻断 overlap。

SP 怎么打开 Overlap 窗口?

Megatron-LM 提出的 SP 把 AllReduce 拆成 AllGather + ReduceScatter,与 Attention/MLP 分块流水[1]:

[AllGather 输入序列分片]

▼ (AllGather 完成后开始计算)
[Attention / MLP 计算] ←→ [ReduceScatter 异步通信]

▼ (ReduceScatter 完成后, 输出分片就绪)
[LayerNorm / Dropout 在序列分片上操作]


[AllGather 下一层输入] ←→ [下一层 Attention/MLP 计算]

关键:把权重按列分块,每算完一个 chunk 立即发起该 chunk 的 ReduceScatter,同时继续算下一个 chunk。通信和计算在时间轴上交叉推进。

详细原理见 4.1 总览

TP Overlap 实际效果如何?

Overlap 可行性 = AllReduce 时间 / MatMul 时间,比值 < 1 时可完全 overlap。

典型分析 (BF16, $b=1$, $s=4096$, $h=7168$, TP=8):

典型值
单次 AllReduce 消息大小~58.7 MB
NVLink 带宽 (节点内)400 ~ 900 GB/s
AllReduce 时间估算~0.1 ~ 0.3 ms
单层 MatMul 计算时间 (FP8)~0.5 ~ 2 ms
比值0.05 ~ 0.6 (通常可 overlap)

@tbl-overlap-02 TP Overlap 的实际效果

TP 度越大,单设备计算分片越小,计算/通信比下降,overlap 收益减小

PP 在哪里能 Overlap?

PP 的 P2P 与同 micro-batch 计算有强数据依赖,难以直接 overlap。两个机会窗口:

Pipeline Bubble 阶段

启动 / 排空阶段有设备空闲 (bubble), bubble 期间可以插入:

  • DP 梯度 AllReduce (反向已积累完毕)
  • EP AllToAll 待处理通信
  • 下一个 global batch 的数据预取

Interleaved 1F1B (交错流水线)

每个 stage 切 $v$ 个 chunk, Bubble ratio 从 $\frac{p-1}{m}$ 降至 $\frac{1}{v} \cdot \frac{p-1}{m}$。chunk 间 P2P 窗口更小但更频繁,调度复杂但细粒度 overlap 机会增加。

PP P2P 通信特征

每次 stage 边界传输:

$$\begin{equation} M_{\text{PP-overlap}} = b \cdot s \cdot h \cdot \text{dtype\_size} \label{eq:par-overlap-pp-msg} \end{equation}$$

与 TP AllReduce 同量级 (10~100 MB),但 P2P 仅涉及两相邻 stage,相邻 stage 同板 / 同机架内连接可压低 P2P 延迟对 bubble 的影响。

为什么 DP 的 Overlap 收益最高?

DP 是所有并行策略中 Overlap 潜力最高的:梯度 AllReduce 不阻塞当前 step 前向,且反向逐层进行,每层梯度算完即可立即发起 AllReduce,不需等所有层完成。

Bucket 机制 (PyTorch DDP)

反向传播: Layer N → Layer N-1 → ... → Layer 1
↓ 梯度就绪 ↓ 梯度就绪
AllReduce: [bucket 填满后触发] [bucket 填满后触发]

参数按通信顺序 (反向顺序) 分组到 bucket,每个 bucket 梯度满后立即 AllReduce,与后续层反向并行。这是大模型训练中最成熟的 overlap 优化

ZeRO Stage 3 的 Overlap

ZeRO 把参数/梯度/优化器状态都分片,前向/反向动态重建:

  • 前向前 AllGather (参数重建) 可以与前一层计算 overlap (Prefetch)
  • 反向后 ReduceScatter (梯度归约 + 分片) 可以与后续层反向计算 overlap

ZeRO overlap 依赖精细 Prefetch 调度,通常需要框架内置支持 (DeepSpeed)。

EP 的 Overlap 在哪里?

MoE 层的 dispatch + Expert 计算 + combine 序列中,只有"Expert 计算 / combine"之间有 overlap 机会

AllToAll (dispatch)  →  Expert 计算  →  AllToAll (combine)
  • Dispatch AllToAll 与前一层 MLP 输出有数据依赖,难 overlap
  • Expert 计算与 Combine AllToAll 之间有 overlap 机会:Expert 处理完一批 token 后立即发起该批的 combine,与剩余 token 的 Expert 计算并行。需要 Expert batch 分块 (chunk)

AllToAll 消息 0.1~60 MB (远小于 DP AllReduce),通信时间短,overlap 绝对收益有限但对轻量 MoE 仍重要

各并行策略 Overlap 率参考

核心问题:TP/SP/PP/DP/EP 五种并行策略的理论 Overlap 率上限分别是多少、各有什么前提条件?

并行策略通信原语Overlap 潜力典型 $r$限制因素
TP AllReduce (推理)AllReduce0 ~ 0.3关键路径,强数据依赖
TP AllReduce (训练)AllReduce0.3 ~ 0.7反向可部分 overlap
SP AG + RSAllGather + ReduceScatter0.7 ~ 0.9需分块计算支持
PP P2PP2P Send/Recv0.3 ~ 0.6bubble 窗口有限
DP AllReduceAllReduce0.7 ~ 0.95bucket 大小设置
EP AllToAllAllToAll0.3 ~ 0.6Expert batch 需分块

@tbl-overlap-03 各并行策略的 Overlap 率参考

硬件能力如何影响 Overlap?

硬件并发能力决定 overlap 的上限

指标对 Overlap 的影响
DMA 引擎数量引擎越多,可同时处理的通信请求越多
DMA 引擎峰值带宽决定通信时间上限,影响 $T_{\text{comm}} / T_{\text{compute}}$
NVLink / C2C 带宽节点内高带宽可减小 $T_{\text{comm}}$,提升 overlap 可行性
RDMA 支持节点间通信通过 NIC DMA,不占用计算核资源
多 Stream 支持软件并发发起多通信,需硬件并发 DMA

@tbl-overlap-04 关键硬件指标

典型多引擎芯片 (如 SG2262 配置 GDMA / SDMA / 4× CDMA):CDMA 专用跨芯片通信,4 个引擎可并发处理不同方向的通信流,overlap 率 (compute_dma_overlap_rate) 在 typical workload 上可达 ~0.8,即通信时间 20% 暴露在关键路径上。实际值需 benchmark 标定,随负载类型 (计算密集 vs 访存密集) 与消息大小变化。

各并行策略 Overlap 能力总览

核心问题:一张表汇总五种并行策略的 Overlap 可行性、收益、前提条件和典型实现?

并行策略Overlap 机制工程实现难度推理收益训练收益
TP (标准)无 (关键路径阻塞)
TP + SPAG / RS 与 Attention/MLP 分块流水
PP (1F1B)Bubble 期间插入其他通信
PP (Interleaved)细粒度 chunk 间通信流水
DPBucket 级 AllReduce 与反向流水低 (框架内置)
EPExpert batch 分块,combine 与计算流水
ZeRO Stage 3Prefetch AllGather + 分块 ReduceScatter高 (需框架)

@tbl-overlap-05 各并行策略的 Overlap 能力对比

推理与训练的 Overlap 机会差异

Overlap 收益在推理与训练上呈现完全不同的形态,根因是两者的工作负载和通信构成不同:

维度推理训练
主要通信TP AllReduce + EP AllToAllDP AllReduce + TP AllReduce + EP AllToAll
DP 通信无 (各副本独立处理请求)梯度 AllReduce (最大通信量)
通信/计算比高 (小 batch,计算量少)低 (大 batch,计算量大)
Overlap 机会少 (前向无 Bucket 可掩盖)多 (反向可重叠梯度同步)
延迟敏感性极高 (直接影响 TTFT / TPOT)中等 (影响总训练时间)

@tbl-overlap-train-infer 推理与训练的通信特征对比

关键非对称:推理只有前向,缺少最容易 overlap 的反向梯度 AllReduce,因此 DP overlap 收益最高这一结论只在训练成立;推理场景下 overlap 主要靠 SP 拆 AllReduce + EP combine 分块。

Takeaway

知识点核心结论
Overlap 三前提数据依赖解耦 + 硬件并发 + 软件异步
临界条件$T_{\text{comm}} \le T_{\text{compute}}$ 才能完全 overlap
TP 标准关键路径阻塞,难 overlap
SP 收益拆 AllReduce 为 AG + RS,与 chunked 计算流水
DP 收益最高反向逐层 Bucket AllReduce, $r$ 可达 0.95
PP overlap在 bubble 期,或 Interleaved chunk 间
EP overlapcombine 与 Expert 计算分块流水
硬件依赖独立 DMA 引擎 + 多 Stream 是基础

@tbl-overlap-06 Overlap 核心知识点

参考资料

  1. Korthikanti et al., Reducing Activation Recomputation in Large Transformer Models, MLSys 2023. https://arxiv.org/abs/2205.05198