4.1 为什么机柜内需要全互联


文档摘要

4.1 为什么机柜内需要全互联 要理解 NVLink 和 HCCS 为什么存在,先要理解一个反直觉的事实:多卡训练时,卡和卡之间要交换的数据量,远比直觉里大得多。 4.1.1 分布式训练里到底在传什么 回顾第 3.4 节,大模型被切分到多卡后,各卡必须频繁通信。具体在传什么?主要是两类数据: 第一类是梯度同步。在数据并行里,每张卡各自算出一段梯度,必须把所有卡的梯度汇总求平均,再广播回所有卡,保证大家用同一份更新后的权重继续训练。这个"汇总求平均再广播"的过程,是一个典型的集合通信操作。 第二类是中间结果交换。在张量并行里,单个矩阵乘被切到多卡,每张卡算一部分,必须把结果拼接或累加起来才能继续下一层运算。这种交换在每个矩阵乘后都要发生,频率极高。

4.1 为什么机柜内需要全互联

要理解 NVLink 和 HCCS 为什么存在,先要理解一个反直觉的事实:多卡训练时,卡和卡之间要交换的数据量,远比直觉里大得多。

4.1.1 分布式训练里到底在传什么

回顾第 3.4 节,大模型被切分到多卡后,各卡必须频繁通信。具体在传什么?主要是两类数据:

第一类是梯度同步。在数据并行里,每张卡各自算出一段梯度,必须把所有卡的梯度汇总求平均,再广播回所有卡,保证大家用同一份更新后的权重继续训练。这个"汇总求平均再广播"的过程,是一个典型的集合通信操作。

第二类是中间结果交换。在张量并行里,单个矩阵乘被切到多卡,每张卡算一部分,必须把结果拼接或累加起来才能继续下一层运算。这种交换在每个矩阵乘后都要发生,频率极高。

这两类通信的共性是——它们都是集体操作,涉及一组卡之间的数据交换,而不是简单的两点通信。这就是"集合通信"(Collective Communication)这个词的由来。

数据并行的梯度同步(一轮迭代): 卡1算梯度g1 ──┐ 卡2算梯度g2 ──┤ 卡3算梯度g3 ──┼──► 汇总求平均 ──► 广播回所有卡 ──► 各卡更新权重 卡4算梯度g4 ──┘ (每轮都要发生,通信量 = 模型大小)

4.1.2 AllReduce:最核心的集合通信原语

上面这个"汇总求平均再广播"的过程,在集合通信里有一个专门的名字——AllReduce(全归约)。它是分布式训练里最核心、也最吃带宽的操作。

AllReduce 的效果是:让一组卡里的每张卡,最终都拿到"所有卡数据的归约结果"(归约可以是求和、求平均、求最大等)。在数据并行里,归约操作就是"梯度求平均"。每轮训练迭代都要做一次 AllReduce,每次传输的数据量等于模型大小。

问题是,AllReduce 怎么实现?最朴素的办法是找一张卡当"主",所有卡把数据发给主,主算完再发回所有卡。但这种办法有个致命问题——主卡会成为带宽瓶颈,所有流量都挤在它身上。模型一大,主卡的网络接口直接被打爆。

朴素 AllReduce(有主卡瓶颈): 卡1 ──►┐ 卡2 ──►│ 卡3 ──►┼──► 主卡(汇总) ──► 广播回卡1..卡4 卡4 ──►│ ↑ 主卡带宽被打爆

4.1.3 带宽放大:为什么需要全互联

为了消除主卡瓶颈,工程上发明了"环状 AllReduce"(Ring AllReduce)等算法。它的核心思想是让所有卡组成一个环,数据在环上分多轮流动,每张卡既发送又接收,把通信负担均匀分摊到所有卡。这样没有任何一张卡是瓶颈,理论上可以利用所有卡的互联带宽。

但环状 AllReduce 有一个前提——任意相邻卡之间都要有高速互联。如果卡和卡之间只有普通以太网(带宽低、延迟高),环状算法再好也跑不快。这就引出了对"全互联"的刚性需求:要让集合通信跑满,机柜内的卡之间必须有远超普通网络的专用高速链路。

💡 "全互联"的含义:这里的"全"不是说每张卡都和所有其他卡有一条直连物理线(那线就太多了),而是说在逻辑上任意两张卡之间都能以高带宽、低延迟通信。NVSwitch 用交换芯片实现了这种逻辑全互联,HCCS 用近邻全互联+分组扩展实现了另一种形式的全互联。

4.1.4 以太网为什么不够用

到这里,"为什么不能用普通以太网"就有了明确答案。以太网是为通用数据通信设计的,有几个固有特征与 AI 集合通信的需求相冲突:

特征 普通以太网 AI 集合通信需求
带宽 单链路百 GB/s 量级 需要更高且多链路聚合
延迟 微秒级 需要亚微秒级
协议开销 TCP/IP 协议栈重 需要轻量甚至硬件直通
拓扑 无结构组网 需要针对集合通信优化

普通以太网每经过一次协议栈处理、每次路由跳转,都会增加延迟和开销。对于集合通信这种"高频、大数据量、需低延迟"的负载,这些开销累积起来足以让训练效率大幅下降。

⚠️ 不要误解:以太网不是"不行",而是"在机柜内不够用"。在第 5 章我们会看到,机柜间的大规模组网里,增强型以太网(无损以太网/RoCE)反而是主流选择。机柜内和机柜间对互联的需求特征不同,选型也不同——这是理解"网"两章的关键区分。

4.1.5 两条机柜内互联路线的预告

正是基于上述需求,AI 厂商各自开发了机柜内高速互联:

  • NVIDIA 的 NVLink/NVSwitch:用专用高速链路和交换芯片,把机柜内所有 GPU 连成无阻塞网络,带宽和延迟都远超以太网。这是 NVL72 的核心。
  • 华为的 HCCS:片间高速互联,在 NPU 之间构建高速总线,更强调近邻全互联和组内紧耦合。这是昇腾超节点的核心。

两者的实现哲学不同——一个是"交换式全互联",一个是"近邻总线式互联"。下一节我们先看 NVLink/NVSwitch 这条把柜做成"一颗大芯片"的路线。

思考与延伸

  1. 环状 AllReduce 把通信负担分摊到所有卡,但它要求环形拓扑。如果机柜内的物理互联不是环形,环状算法还能高效运行吗?谁负责把逻辑环映射到物理拓扑?
  2. AllReduce 每轮迭代都要传一次"模型大小"的数据。对一个千亿参数模型,单次 AllReduce 要传多少字节?换算成带宽需求,普通以太网能扛住吗?
  3. 假设某新型集合通信算法把通信量减半,但它要求任意两点直连。在物理上做不到全直连的机柜里,这种算法还有意义吗?

本节关键词:集合通信、AllReduce、带宽放大、环状 AllReduce、全互联 返回:第 4 章支柱页 下一节:4.2 NVL72 的 NVLink/NVSwitch 与铜背板


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U