4.1 为什么机柜内需要全互联 要理解 NVLink 和 HCCS 为什么存在,先要理解一个反直觉的事实:多卡训练时,卡和卡之间要交换的数据量,远比直觉里大得多。 4.1.1 分布式训练里到底在传什么 回顾第 3.4 节,大模型被切分到多卡后,各卡必须频繁通信。具体在传什么?主要是两类数据: 第一类是梯度同步。在数据并行里,每张卡各自算出一段梯度,必须把所有卡的梯度汇总求平均,再广播回所有卡,保证大家用同一份更新后的权重继续训练。这个"汇总求平均再广播"的过程,是一个典型的集合通信操作。 第二类是中间结果交换。在张量并行里,单个矩阵乘被切到多卡,每张卡算一部分,必须把结果拼接或累加起来才能继续下一层运算。这种交换在每个矩阵乘后都要发生,频率极高。
要理解 NVLink 和 HCCS 为什么存在,先要理解一个反直觉的事实:多卡训练时,卡和卡之间要交换的数据量,远比直觉里大得多。
回顾第 3.4 节,大模型被切分到多卡后,各卡必须频繁通信。具体在传什么?主要是两类数据:
第一类是梯度同步。在数据并行里,每张卡各自算出一段梯度,必须把所有卡的梯度汇总求平均,再广播回所有卡,保证大家用同一份更新后的权重继续训练。这个"汇总求平均再广播"的过程,是一个典型的集合通信操作。
第二类是中间结果交换。在张量并行里,单个矩阵乘被切到多卡,每张卡算一部分,必须把结果拼接或累加起来才能继续下一层运算。这种交换在每个矩阵乘后都要发生,频率极高。
这两类通信的共性是——它们都是集体操作,涉及一组卡之间的数据交换,而不是简单的两点通信。这就是"集合通信"(Collective Communication)这个词的由来。
数据并行的梯度同步(一轮迭代): 卡1算梯度g1 ──┐ 卡2算梯度g2 ──┤ 卡3算梯度g3 ──┼──► 汇总求平均 ──► 广播回所有卡 ──► 各卡更新权重 卡4算梯度g4 ──┘ (每轮都要发生,通信量 = 模型大小)
上面这个"汇总求平均再广播"的过程,在集合通信里有一个专门的名字——AllReduce(全归约)。它是分布式训练里最核心、也最吃带宽的操作。
AllReduce 的效果是:让一组卡里的每张卡,最终都拿到"所有卡数据的归约结果"(归约可以是求和、求平均、求最大等)。在数据并行里,归约操作就是"梯度求平均"。每轮训练迭代都要做一次 AllReduce,每次传输的数据量等于模型大小。
问题是,AllReduce 怎么实现?最朴素的办法是找一张卡当"主",所有卡把数据发给主,主算完再发回所有卡。但这种办法有个致命问题——主卡会成为带宽瓶颈,所有流量都挤在它身上。模型一大,主卡的网络接口直接被打爆。
朴素 AllReduce(有主卡瓶颈): 卡1 ──►┐ 卡2 ──►│ 卡3 ──►┼──► 主卡(汇总) ──► 广播回卡1..卡4 卡4 ──►│ ↑ 主卡带宽被打爆
为了消除主卡瓶颈,工程上发明了"环状 AllReduce"(Ring AllReduce)等算法。它的核心思想是让所有卡组成一个环,数据在环上分多轮流动,每张卡既发送又接收,把通信负担均匀分摊到所有卡。这样没有任何一张卡是瓶颈,理论上可以利用所有卡的互联带宽。
但环状 AllReduce 有一个前提——任意相邻卡之间都要有高速互联。如果卡和卡之间只有普通以太网(带宽低、延迟高),环状算法再好也跑不快。这就引出了对"全互联"的刚性需求:要让集合通信跑满,机柜内的卡之间必须有远超普通网络的专用高速链路。
💡 "全互联"的含义:这里的"全"不是说每张卡都和所有其他卡有一条直连物理线(那线就太多了),而是说在逻辑上任意两张卡之间都能以高带宽、低延迟通信。NVSwitch 用交换芯片实现了这种逻辑全互联,HCCS 用近邻全互联+分组扩展实现了另一种形式的全互联。
到这里,"为什么不能用普通以太网"就有了明确答案。以太网是为通用数据通信设计的,有几个固有特征与 AI 集合通信的需求相冲突:
| 特征 | 普通以太网 | AI 集合通信需求 |
|---|---|---|
| 带宽 | 单链路百 GB/s 量级 | 需要更高且多链路聚合 |
| 延迟 | 微秒级 | 需要亚微秒级 |
| 协议开销 | TCP/IP 协议栈重 | 需要轻量甚至硬件直通 |
| 拓扑 | 无结构组网 | 需要针对集合通信优化 |
普通以太网每经过一次协议栈处理、每次路由跳转,都会增加延迟和开销。对于集合通信这种"高频、大数据量、需低延迟"的负载,这些开销累积起来足以让训练效率大幅下降。
⚠️ 不要误解:以太网不是"不行",而是"在机柜内不够用"。在第 5 章我们会看到,机柜间的大规模组网里,增强型以太网(无损以太网/RoCE)反而是主流选择。机柜内和机柜间对互联的需求特征不同,选型也不同——这是理解"网"两章的关键区分。
正是基于上述需求,AI 厂商各自开发了机柜内高速互联:
两者的实现哲学不同——一个是"交换式全互联",一个是"近邻总线式互联"。下一节我们先看 NVLink/NVSwitch 这条把柜做成"一颗大芯片"的路线。
本节关键词:集合通信、AllReduce、带宽放大、环状 AllReduce、全互联 返回:第 4 章支柱页 下一节:4.2 NVL72 的 NVLink/NVSwitch 与铜背板