并行策略
All-gather
也称为 allgather、全收集
先用大白话
All-gather 是一种群体通信操作,结束时每颗芯片都拿到最初分散在所有芯片上的完整数据。
技术定义
All-gather 是一种集合通信操作,每个参与设备贡献自己的分片,所有设备都收到全部分片拼接后的结果。
工程细节
分片执行经常需要重组完整张量:某些张量并行布局中矩阵乘法前的权重分片,或需要完整隐藏状态的操作之前各设备的激活。All-gather 把每个分片送到每个 rank,通常按 ring 或 tree 调度执行,开销随张量大小和参与者数量增长。它是 reduce-scatter 的对偶操作,两者组合起来就是一次 all-reduce。
为什么重要
与 all-reduce、all-to-all 一起,all-gather 是决定并行方案能否扩展的少数几个集合操作之一。它的延迟处在每一使用它的层的关键路径上,这也是芯片间 scale-up 带宽被大力宣传的原因。
如何在 InferenceX 中解读
InferenceX 测试的每个多芯片配置都通过其并行方案频繁调用集合操作,而 CollectiveX 工作流直接在多家厂商硬件上测量这类操作,让通信行为可以在完整模型运行之外被比较。