Skip to content

05. Communication Topologies | 通信拓扑与分布式基石 (Communication & Distributed Topology)

难度: Hard | 标签: 系统架构, 分布式训练, 通信机制 | 目标人群: 核心 Infra 与算子开发

讨论题 03:GPU 物理架构与内存层级 中,我们探讨了单卡内部由 SRAM 和 HBM 构成的访存层级。然而,千亿参数大模型的计算和显存需求远超单卡的承载极限。 当我们跨入多机多卡的集群环境时,单机的访存受限 (Memory Bound) 将演变为集群间的通信瓶颈 (Communication Bottleneck)。本节我们将从大模型最核心的 3D 并行策略 出发,结合 NVIDIA A100/H100 的底层物理拓扑,解析软硬件是如何协同工作的。

相关阅读:
请前往实战篇进行相关代码练习:
../02_PyTorch_Algorithms/24_Tensor_Parallelism_Sim.md
../03_CUDA_and_Triton_Kernels/16_Distributed_Communication_Primitives.md


Q1:什么是大模型训练中的 3D 并行 (3D Parallelism) 策略?请简述 DP、TP 和 PP 的基本概念。

点击展开查看解析

当一个模型大到一张 GPU 装不下,且训练数据多到一张 GPU 算不完时,业界(如业界标杆 Megatron-LM)通常采用三种维度的切分方式(俗称 3D 并行)来将任务分摊给整个集群:

  1. 数据并行 (Data Parallelism, DP) —— 切分数据
    • 概念:每张 GPU 上都有一份完整的模型副本。我们将海量的训练数据切分成多个小批次 (Mini-batches),分发给不同的 GPU 同时计算。
    • 特点:最基础的并行方式。计算完后,所有 GPU 需要同步一次梯度,以保证大家的模型更新方向一致。
  2. 张量并行 (Tensor Parallelism, TP) —— 切分算子 (层内)
    • 概念:如果一层 Transformer 的矩阵乘法太大,我们就把这个大矩阵“切块”。多张 GPU 分别计算矩阵的一部分,最后将结果拼接起来。
    • 特点:它是在“层内部”进行的细粒度切分,因此 GPU 之间需要极高频率地交换中间计算结果。
  3. 流水线并行 (Pipeline Parallelism, PP) —— 切分网络层 (层间)
    • 概念:将一个深达上百层的神经网络“拦腰截断”。例如 GPU 1 负责前 10 层,GPU 2 负责第 11-20 层。像工厂流水线一样,GPU 1 算完后把结果传递给 GPU 2。
    • 特点:属于粗粒度切分,只有在相邻层的 GPU 之间才需要传递激活值 (Activations)。

Q2:以 A100/H100 服务器为例,机内与机外通信的物理拓扑和带宽存在怎样的显著差距?

点击展开查看解析

要将上述的 3D 并行策略部署到真实的物理机房中,我们必须认清一个残酷的硬件现实:节点内和节点间的数据传输由两套完全不同的物理网络承载。

  1. 机内通信 (Intra-node Communication):

    • 硬件基石:NVIDIA 主板上的 NVLink 互连技术和 NVSwitch 全互联交换芯片。它允许单台服务器内的 8 张 GPU 绕过 CPU,实现点对点直连。
    • 理论带宽:A100 双向互连带宽可达 600 GB/s;H100 更是提升至 900 GB/s
    • 特点:延迟极低,带宽极大。8 张显卡在物理拓扑上就像是一张拥有超大显存的“统一 GPU”。
  2. 机外通信 (Inter-node Communication):

    • 硬件基石:跨服务器交换依赖于网卡,通常使用 InfiniBand (IB) 网络或支持 RDMA 的以太网 (RoCE)。
    • 理论带宽:主流高端网卡的网络速率换算为数据吞吐量仅为 25 GB/s 到 50 GB/s
    • 特点:受限于网卡、物理交换机及光纤距离,跨机通信带宽受到严格制约。

核心结论:机内 NVLink 与机外网络(如 IB)的带宽差距高达 10倍到20倍以上。这种物理层面的“带宽悬崖”是决定 3D 并行策略如何放置的刚性约束。


Q3:硬件拓扑的“带宽悬崖”是如何决定张量并行 (TP) 与流水线并行 (PP) 的部署边界的?

点击展开查看解析

构建分布式训练系统的核心设计原则是:让高频、大数据量的通信走高速的 NVLink,让低频、小数据量的通信走机外网络。

  1. TP 必须被严格限制在机内:

    • TP 在每一层的前向和反向计算中,矩阵切块运算一旦结束,必须立刻执行全局数据同步,否则无法进行后续计算。
    • 如果跨物理机执行 TP,仅有约 50 GB/s 的 IB 带宽会导致 GPU 长时间阻塞等待,整体算力利用率呈断崖式下跌。因此,TP 维度通常被严格限制在单台物理机内部(即 TP Size 8
  2. PP 和 DP 适合跨机分布:

    • PP 仅在切分层的边界交接微批次 (Micro-batch) 时,发生一次点对点的发送与接收。且传输的数据仅为单层的激活值张量,体积远小于动辄几 GB 的参数。
    • DP 虽然要同步全量梯度,但它只在整个反向传播结束时才执行一次,频率相对较低(并且可以与反向传播计算进行 Overlap 隐藏通信时间)。
    • 因此,流水线并行和数据并行通常作为跨机扩展的主要手段,以容忍跨机网络的带宽上限。

Q4:在上述并行策略下,请简述最常用的三种集合通信原语:All-Reduce, All-Gather, Reduce-Scatter 的区别。

点击展开查看解析

当我们在宏观上决定了 TP/PP/DP 的部署位置后,底层的通信库(如 NCCL)会通过以下核心通信原语 (Primitives) 来执行实际的数据搬运:

假设当前通信组内有 4 张 GPU,每张卡上持有一段局部数据:

  1. All-Reduce (全规约):

    • 操作:将所有卡上大小相等的张量按照指定的运算(通常是求和 Sum)进行合并,然后将合并结果完整地广播回所有卡上。
    • 应用场景:数据并行 (DP) 汇总梯度;张量并行 (TP) 同步局部矩阵乘加的结果。
  2. All-Gather (全收集):

    • 操作:每张卡拥有一个被切分的张量片段。各卡相互交换片段,最终每张卡都拼接并持有一份完整的大张量。
    • 应用场景:序列并行 (Sequence Parallelism) 中收集被分布处理的文本序列;ZeRO-3 获取切片的模型权重。
  3. Reduce-Scatter (规约并散布):

    • 操作:Reduce + Scatter 的组合。首先对所有卡的张量按位置求和,然后将求和结果均匀切分,每张卡只接收并保存自己对应的切片部分。
    • 应用场景:ZeRO-2 计算并保存切片的梯度。

系统洞察:在 A100/H100 节点内部,NCCL 会充分利用 NVSwitch 的全互联特性,使得这些集合通信原语的执行效率逼近机内物理硬件的极限带宽。

Released under the MIT License.