跳到主要内容
分布式训练

第11章:3D 并行与混合并行策略

把所有并行维度拼起来——TP×PP×DP×EP×CP 的拓扑设计、通信域映射、rank 编排,以及如何为给定集群选出最优组合

3D并行 混合并行 拓扑设计 通信域 Megatron-LM

📖 本章概述

前面各章把每种并行策略单独讲透了。但真实的大模型训练从不是”只用一种”——千卡级训练通常是 TP + PP + DP 的 3D 并行,加上 MoE 后变成 4D,再加长序列就是 5D。本章是并行策略的”总装车间”:讲清多个维度如何正交组合、通信域如何映射到物理硬件、rank 如何编排,最终能为一个给定集群设计出最优并行配置。


📑 章节结构

1. 为什么需要混合并行

  • 单一策略的天花板:DP 不省参数、TP 出不了机、PP 有 Bubble
  • 维度正交性:不同并行切的是不同东西,可以叠加
  • world_size = TP × PP × DP(× EP × CP)的约束

2. 通信域划分原则(本章重点)

  • 按通信频率/带宽需求排序映射到硬件
    • TP:每层都通信、对延迟最敏感 → 机内 NVLink(8 卡内)
    • CP/SP:Attention 内通信 → 通常与 TP 同域或机内
    • PP:每个 micro-batch 边界传激活 → 可跨机 InfiniBand
    • DP:每步一次梯度同步 → 跨节点,带宽要求最低
  • 通信量从大到小:TP > CP > PP > DP,硬件带宽从高到低对应分配

3. rank 编排与通信组构建

  • rank 到 (tp_rank, pp_rank, dp_rank) 的多维坐标映射
  • 维度排列顺序的影响(哪个维度”贴近”物理相邻 GPU)
  • Megatron-LM initialize_model_parallel() 的分组逻辑剖析
  • 各通信组的 NCCL communicator 创建

4. 拓扑设计实战

  • 实例:64 卡集群(8 节点 × 8 GPU)
    • 方案 A:TP=8, PP=4, DP=2
    • 方案 B:TP=4, PP=8, DP=2
    • 如何取舍:看模型层数、单层大小、网络带宽
  • 实例:千卡集群训练百亿/千亿模型的配置思路
  • 加入 EP/CP 后的多维编排

5. 显存与吞吐的联合估算

  • 给定 (TP, PP, DP) 组合,估算每卡显存占用
  • 估算端到端吞吐:计算时间 + 各维度通信时间 + PP Bubble
  • 调参方法论:先满足”装得下”,再优化”跑得快”

6. 动手实验

  • 为给定模型 + 集群手算 3 套并行方案的显存与通信量,选出最优
  • 阅读 Megatron-LM 的 parallel_state.py,画出 rank 分组图

🎯 本章学习目标

  • 能解释多个并行维度为什么可以正交组合,写出 world_size 约束
  • 能按通信频率把 TP/CP/PP/DP 正确映射到 NVLink/IB/以太网
  • 能读懂 Megatron 的 rank 编排逻辑并画出通信组分组图
  • 能为给定模型规模和集群拓扑设计并对比多套 3D/多维并行方案