如果把分布式训练比作一个超大型帝国,那么“集体通信” (Collective Operations) 就是这个帝国的“高速公路网”和“快递系统”。
一个模型可能被拆到几十、几百甚至上千块 TPU 或 GPU 上。每块芯片只保存一部分参数、梯度或 Token,但计算过程中,它们又必须不断交换数据。很多时候,真正拖慢系统的不是计算,而是数据还在路上。
这篇文章从硬件拓扑讲起,系统梳理了 Transformer 训练与推理中最重要的几种 Collective Operations(集体通信操作):
1.All-Gather:把分散在不同芯片上的数据碎片收集起来,让每块芯片都获得完整数据;
2.Reduce-Scatter:一边汇总数据,一边把结果重新分片;
3.All-Reduce:常用于数据并行中的梯度同步,可以拆成 Reduce-Scatter 和 All-Gather;
4.All-to-All:让每块芯片都能向其他芯片发送不同的数据,是 MoE 模型进行 Token 路由时的关键操作。
文章很值得读的一点,是没有孤立地解释这些术语,而是先带我们看清数据实际在什么样的网络里移动。
TPU 集群通常采用 2D 或 3D Torus(环面)拓扑:每块芯片直接连接附近的“邻居”,数据可能要经过多跳才能到达目的地。切分集群时是否保留环形连接,也会直接影响通信效率。
GPU 集群则更像分层交通网络:节点内部通过 NVLink 和 NVSwitch 高速连接,节点之间再通过 InfiniBand 组成 Fat Tree(胖树)网络。随着通信跨出单机,带宽下降、层级增加,Collective Operations 也需要变成分层算法。
文章还解释了 Ring 与 Tree 两类常见通信算法。
Ring 更适合传输大数据,容易持续占满带宽;Tree 只需要约 log₂(N) 轮通信,在小数据、延迟更重要的场景中更有优势。实际系统会根据消息大小和硬件拓扑选择不同方案。
原文篇幅很长,图示和推导非常丰富。
我把 PDF 放在附件里,适合想系统理解大模型分布式通信、GPU/TPU 集群拓扑,以及训练性能瓶颈的朋友慢慢阅读。


