在分布式训练(尤其是 数据并行 / 模型并行 / 张量并行)中,All-Gather、Reduce-Scatter、All-Reduce是三类最核心的集体通信(Collective Communication)原语。它们本质上定义了多进程 / 多卡之间如何交换与聚合张量数据。
1. All-Gather (全收集)
**定义:**All-Gather = 每个进程提供一部分数据,最终所有进程都得到“拼接后的完整数据”。
- 不做求和 / 平均
- 只做收集(concatenate)
场景:假设有N NN个 GPU,每个 GPU 上只有一部分数据(比如模型权重的1 / N 1