LLM 并行通信总览
大模型分布式训练和推理中,不同的并行策略对应特定的集合通信模式。理解并行策略与通信原语的映射关系,是分析通信瓶颈、选择集合通信算法、优化端到端性能的前提。
名词定义
| 名词 | 定义 |
|---|---|
| TP(Tensor Parallelism,张量并行) | 将单个权重矩阵按列/行切分到多设备,每层通过 AllReduce 合并部分积,是带宽最敏感的并行维度 |
| PP(Pipeline Parallelism,流水线并行) | 将模型按层划分为多个 stage,stage 间通过 P2P 传递激活值,bubble 率是主要效率损失来源 |
| DP(Data Parallelism,数据并行) | 每个 worker 持有完整模型副本,训练后通过 AllReduce 同步梯度,通信量与模型参数量正相关 |
| EP(Expert Parallelism,专家并行) | MoE 模型中将 Expert 分布到不同设备,用 AllToAll 实现 token 路由,通信量由 top-K 和 batch size 决定 |
| SP(Sequence Parallelism,序列并行) | 将序列维度切分到 TP 组内各设备,与 TP 协同工作,通过 AllGather + ReduceScatter 替换 TP 的 AllReduce |
| ZeRO(Zero Redundancy Optimizer) | 将优化器状态、梯度、参数分别分片到不同 DP worker,消除冗余显存,代价是引入 AllGather/ReduceScatter 通信 |
| MFU(Model FLOPS Utilization) | 实际计算吞吐与芯片理论峰值算力的比值,通信空泡会直接压低 MFU |
| Bubble 率 | 流水线并行中,因 micro-batch 调度导致 stage 处于空闲等待的时间占比,随 PP 度增大而上升 |
| Micro-batch | PP 中为填充流水线而将一个 global batch 切分成的更小批次,数量越多 bubble 率越低但内存压力越高 |
| 计算通信 Overlap | DMA 引擎在计算单元执行 matmul 时并发传输数据,掩盖通信延迟,是提升 MFU 的关键技术 |
并行策略分类
| 策略 | 全称 | 一句话定义 |
|---|---|---|
| TP | Tensor Parallelism(张量并行) | 将单个权重矩阵按列/行切分到多设备,每层通过集合通信合并部分积 |
| PP | Pipeline Parallelism(流水线并行) | 将模型按层划分为多个 stage,stage 间通过 P2P 传递激活值 |
| DP | Data Parallelism(数据并行) | 每个 worker 持有完整模型副本,训练后通过 AllReduce 同步梯度 |
| EP | Expert Parallelism(专家并行) | MoE 模型中将 Expert 分布到不同设备,用 AllToAll 实现 token 路由 |
| SP | Sequence Parallelism(序列并行) | 将序列维度切分到 TP 组内各设备,与 TP 协同工作 |
各策略产生的通信原语对照表
| 并行策略 | 通信原语 | 触发时机 | 通信量公式 | 消息大小量级 |
|---|---|---|---|---|
| TP | AllReduce | 每层前向 Attention 和 MLP 各一次(训练时反向再各一次) | $b \times s \times h \times \text{dtype}$(消息大小 $M$;Ring AllReduce 有效传输量约 $2M$) | 10 ~ 100 MB |
| PP | P2P Send/Recv | 每个 micro-batch 在 stage 边界传递激活值 | $b \times s \times h \times \text{dtype}$ | 10 ~ 100 MB |
| DP | AllReduce | 每个 training step 反向传播结束后同步梯度 | $ | \theta |
| EP | AllToAll | 每个 MoE 层 Dispatch 和 Combine 各一次 | $B \times K \times h \times \text{dtype}$ | 0.1 ~ 60 MB |
| SP | AllGather + ReduceScatter | 每层 LayerNorm/Dropout 前后各一次(与 TP 替换关系) | $b \times s \times h \times \text{dtype}$ | 10 ~ 100 MB |
符号说明:$b$ = micro-batch size,$s$ = 序列长度,$h$ = hidden dimension,$|\theta|$ = 模型参数量,$B$ = token 总数,$K$ = top-K expert 数。
通信与计算的关系
计算-通信重叠(Compute-Communication Overlap)
在理想情况下,通信操作与计算操作可以并行执行,从而隐藏部分通信延迟:
$T_{\text{overlap}} = \max(T_{\text{compute}}, T_{\text{comm}})$
而非串行的 $T_{\text{compute}} + T_{\text{comm}}$。
各策略的重叠潜力:
| 并行策略 | 重叠潜力 | 原因 |
|---|---|---|
| TP AllReduce | 低(推理)/ 中(训练) | 前向中 AllReduce 在关键路径上,无法与同层计算重叠 |
| PP P2P | 中 | Pipeline bubble 阶段可部分插入通信 |
| DP AllReduce | 高 | 反向传播时可逐层 overlap 梯度同步 |
| EP AllToAll | 中 | Expert 计算期间可预取下一层通信(需显式流水线) |
| SP AllGather + ReduceScatter | 高 | AllGather 可与 Attention/MLP 计算重叠 |
推理 vs 训练的通信特征差异
| 维度 | 推理 | 训练 |
|---|---|---|
| 主要通信 | TP AllReduce + EP AllToAll | DP AllReduce + TP AllReduce + EP AllToAll |
| DP 通信 | 无(各副本独立处理请求) | 梯度 AllReduce(最大通信量) |
| 通信/计算比 | 高(小 batch,计算量少) | 低(大 batch,计算量大) |
| 重叠机会 | 少(前向无法重叠) | 多(反向可重叠梯度同步) |
| 延迟敏感性 | 极高(影响 TTFT/TPOT) | 中等(影响总训练时间) |
文档导航
| 文档 | 内容 |
|---|---|
| 01-张量并行.md | 张量并行(TP)的列/行切分原理、AllReduce 通信模式与开销分析 |
| 02-流水并行.md | 流水线并行(PP)的 stage 切分、P2P 通信与 pipeline bubble 分析 |
| 03-数据并行.md | 数据并行(DP)的梯度同步机制、AllReduce 通信量与训练/推理差异 |
| 04-专家并行.md | 专家并行(EP)的 MoE 路由机制、AllToAll Dispatch/Combine 通信分析 |
| 05-序列并行.md | 序列并行(SP)与 TP 的协同关系、AllGather + ReduceScatter 替换 AllReduce 的 overlap 优势 |
| 06-计算通信overlap.md | 计算-通信重叠技术原理、各并行策略的 overlap 实现方式与效果分析 |
参考文献
- Shoeybi et al., "Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism", arXiv 2019
- Narayanan et al., "Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM", SC 2021
- Rajbhandari et al., "ZeRO: Memory Optimizations Toward Training Trillion Parameter Models", SC 2020
- Korthikanti et al., "Reducing Activation Recomputation in Large Transformer Models", MLSys 2023
- Fedus et al., "Switch Transformers", JMLR 2022