上个月评估下一轮训练集群的时候,团队里争论最凶的不是 GPU 型号,而是互连方案。有人盯着 NVLink Fusion 的黄皮书画册,有人抱着 UALink 的开放规范文档不放,会议室里谁也说服不了谁。这个场景放在两年前很难想象——那时候 Scale-up 互连基本只有 NVLink 一个答案,没得选。现在 UALink 拉起了开放阵营,NVLink Fusion 又自己把 NVLink 的边界往外推了一大截,行业第一次出现了两条路线并行的局面。
这篇文章想把这套"新互连"的来龙去脉捋清楚,重点回答三个问题:超节点 Scale-up 互连为什么会被单独赛道路化、NVLink Fusion 和 UALink 各自在赌什么、以及 Chiplet 封装技术如何决定两条路线能走多远。我尽量少放口号式结论,多讲背后逻辑和工程上真正需要关心的参数。
1. 为什么 Scale-up 互连会从配角变成主角
1.1 先分清 Scale-up 和 Scale-out
做并行计算的人最容易混淆的就是 Scale-up 和 Scale-out 的边界。简单说,Scale-out 是横向扩机器,节点之间靠网络跑数据并行,通信粒度是梯度、参数,对带宽有一定要求但不那么极致;Scale-up 是把一堆芯片当成一台逻辑上的超级电脑使,通信粒度是激活值、张量切分,走的是内存语义而不是消息传递,对延迟和带宽的要求是另一个量级。
过去十年我们默认 Scale-up 就是 PCIe 的活。多卡服务器插上 NVLink 已经算高级玩法,绝大多数分布式训练走的是 InfiniBand 或者 RoCE。但到了摩尔定律放缓之后,单卡算力增长跟不上模型规模增长,人们开始把几十、几百张卡用一个低延迟高带宽域连起来,变成"一台"超大设备。这就是超节点概念的由来。
超节点并不是简单把带宽堆高。它更像把一个数据中心里几十个机箱的通信模式,压缩到一个物理域内完成。域内通信必须做到亚微秒级延迟、每端口 TB/s 级带宽,并且协议上要支持直接读写远端显存。传统的以太网从设计之初就没打算干这个活,PCIe 的带宽和拓扑灵活性也不够,于是专门针对 Scale-up 的互连技术被单独拎了出来。
1.2 大模型的通信模式决定互连规格
为什么大模型训练这么依赖 Scale-up 互连?拿 Transformer 的张量并行来说,每一层 forward 都需要在 GPU 之间做全交换,把一份完整激活值切成若干份分给多卡计算,然后立刻汇总。这个操作的频率有多高?一个 175B 参数的模型,几十层 Transformer,一层就要做几次全交换,一次通信量在数百 MB 的量级。如果互连延迟高,GPU 每层都要傻等,算力再强也白搭。
数据并行反而是容忍时延的。梯度同步可以做流水化,哪怕用 InfiniBand 也够。真正让互连成为瓶颈的是张量并行、序列并行、专家并行这些通信密集模式。模型越大,并行切分越细,通信占比越高。到了几万亿参数的 MoE 模型,不同专家分布在不同卡上,token 要动态路由到对应专家,通信行为几乎是随机全交换,这种负载只靠 Scale-out 网络是扛不住的。
这也是 NVIDIA 敢把 NVLink domain 从单机扩展到 72 卡甚至 576 卡的底层原因:大模型训练的收益从算法侧和系统侧同时指向"把更多 GPU 连成一个域"。
提示:判断一个集群是不是需要 Scale-up 互连,最简单的办法是看训练日志里通信等待时间占比。如果 GPU 空闲等待超过 30%,大概率是互连拖了后腿。
2. NVLink Fusion:把铜缆和光缆拧进同一个 NVLink 域
2.1 从 NVLink-C2C 到 NVSwitch,NVIDIA 的互连野心
NVLink 不是今天才有的技术。最初它只是 GPU 和 GPU 之间的一条高速小总线,后来从板载直连演进到通过 NVSwitch 构建全连接拓扑,再往后衍生出 NVLink-C2C,把互连下沉到芯片与芯片、chiplet 与 chiplet 层面。这一步很重要,因为它让 NVIDIA 的互连不再只是系统级方案,而是变成了芯片级基础设施。
到 Blackwell 这一代,NVLink 单卡双向带宽做到 1.8 TB/s,一个 NVLink 域最多 576 张 GPU。这张网在 NVIDIA 的架构里已经不是一个可选的加速通道,而是计算本身的一部分。CUDA 程序里你甚至可以意识不到物理上跨了机架,API 层面看起来就是一块超大显存。
但 NVLink 能走多远,取决于物理层。纯铜的 PCB 走线在有限距离内成本低、能效高,可超过一定距离信号就衰减得厉害。机架之间、机柜之间的高速互连,过去只能交给光模块。问题是这会导致协议割裂:机架内是 NVLink,机架外又变回了以太网或 InfiniBand,对上层应用来说,跨了一个域,性能和编程模型就完全不同。
2.2 Fusion 到底融合了什么
NVLink Fusion 这个名字容易引起误解,它不是一款独立芯片,也不是一个全新协议,而是在 NVLink 协议不变的前提下,把铜缆和光缆两种物理介质放进同一个 NVLink 域里。机架内部、短距离的链路继续用铜,保持低延迟和高能效;机架之间、长距离的链路切换成光,让 NVLink 域不再局限于一个机柜。
这意味着,一个域里的所有 GPU,无论物理上是在同一个机架还是分布在相邻几个机柜,对于软件栈来说是等价的。Domain 内部通信具备一致的内存语义和路由能力,不需要像以前那样拆成两个域做跨域同步。
从工程实现上看,关键点并不是插上光模块那么简单,而是需要在协议层面提供统一的透明路由。NVIDIA 的 NVSwitch 在这里承担了类似交换矩阵的角色:铜口进来的流量可以转成光口出去,光口流量也能转回铜口。整个转发过程对 GPU 驱动和 CUDA 应用不可见,这是 Fusion 架构里最花功夫的部分。
我在实践里关注的点是功耗和散热密度。铜缆虽然在短距离内效率高,但几十条 NVLink 铜缆的光模块替代不是零成本。公开资料里 NVIDIA 对具体功耗数据讲得不细,但按照目前每 bit 光互连的能效水平,长距离光链路加进来之后,机柜功耗密度会明显上升,这直接影响到数据中心供电和冷却设计。
2.3 这个方案的上限和软肋
NVLink Fusion 的优势很直观:协议统一、生态成熟、性能上限极高。对绝大多数 AI 训练场景,CUDA + NCCL + NVLink 的组合仍然是最省心的选择。你不需要自己维护驱动、调试网络协议栈、处理拥塞控制,所有东西开箱即用。
它的问题也突出。第一是封闭,整套方案必须搭配 NVIDIA 的 GPU、NVSwitch、网卡乃至专用交换机,采购上没有任何议价空间。第二是光模块和配套系统的成本,NVL576 这种规模下,光互连的物料成本会占到整机柜成本的相当比例。第三,虽然 NVLink 域变大了,但是跨域通信仍然要走其他网络,超节点之间怎么协同在架构上是绕不过去的。
对我这种搞系统的人来说,NVLink Fusion 的实际价值不是"快",而是把系统的可预期性做到了极致。编程模型不变、性能模型稳定、故障排查简单,这在生产环境里比绝对的峰值带宽值钱得多。
3. UALink:开放标准如何重新定义加速器互连
3.1 联盟构成和一纸规范的含金量
UALink 的全称是 Ultra Accelerator Link,由 AMD、Google、Microsoft、Broadcom、Cisco、HPE、Intel 等公司组成的联盟推动。单看名单就知道,这是一次针对 NVIDIA 私有互连的"合纵"。它的思路和 UEC(Ultra Ethernet Consortium)有明确分工:UEC 管 Scale-out,解决跨超节点之间的网络;UALink 管 Scale-up,解决超节点内部加速器之间的互连。
很多人问,UALink 是不是把以太网改个名?不是。它在技术上更接近一个专为内存语义设计的低延迟互连,但借鉴了成熟的高速 SerDes 技术,避免从零发明物理层。这带来的直接好处是工程上的可落地性:Broadcom 手里已经有成熟的 200G/400G SerDes 和交换芯片 IP,不用等三五年工艺成熟。
联盟的意义不只在于技术规范,更在于它提供了一个多方博弈的博弈平台。允许不同芯片厂商实现自己的 UALink 控制器,只要符合规范就能互操作。这对云计算厂商尤其有吸引力,因为他们不想把命运押在一家供应商身上。
3.2 UALink 1.0 的技术基线
根据目前已公开的 UALink 1.0 规范,几个关键点值得圈出来。首先是规模目标:单个 UALink 域可以连接的加速器数量在数百到上千的量级(规范讨论的目标规模在 1024 个设备附近,早期商用验证一般从 256 卡起步)。其次是单通道速率:起步就是 200Gbps 这个档位,后续 400G 的路线也在规划中。延迟目标在个位数微秒以内,虽然和 NVLink 的亚微秒级还有差距,但远好于传统以太网。
UALink 定义的内存语义值得额外说一句。它对上层提供类似 load/store 的远端内存读写能力,而不是像普通网络那样以报文收发为基础。这意味着 GPU 可以像访问本地显存一样访问域内其他加速器的内存,通信库的开销能压得很低。从协议设计上,它是在向 NVLink 的方式靠拢,只是选择了开放实现路线。
AAA 的 GPU 和 NVIDIA 的差异在这里大概率会体现出来:如果 AMD 的 CDNA 系列把 UALink 做成原生接口,加上已经比较成熟的 ROCm 软件栈,那在纯 AMD 集群里它完全有资格挑战 NVIDIA 的体验。
3.3 和 NVIDIA 路线的本质差异:开放 vs 统一
两条路线最核心的分歧不是带宽指标,而是控制权。NVIDIA 选择自己定义从物理层到协议层再到软件层的所有东西,把互连变成系统设计的一个环节;UALink 选择把互连变成一套开放的公共标准,让不同厂商可以围绕它构建各自的系统。
这没有绝对的对错。统一路线的优势是性能和体验的确定性;开放路线的价值是选择自由和长期成本的可控。实践中很多公司会采取混合策略:主力训练集群用 NVIDIA,弹性集群或者推理集群尝试 UALink 设备,逐步积累跨厂商的运维能力。
有一点要提示:UALink 目前最缺的不是规范,而是经过大规模验证的参考系统和丰富的上层软件生态。NVLink 后面有 CUDA、NCCL、NVIDIA 容器工具链这一整套东西,UALink 现在只解决了互连这一层,驱动、调试工具、通信库都还在早期。评估它的时候不要只看白皮书,要多问一句"出了问题谁来帮你查"。
4. Chiplet 封装:两条路线共同的底盘
4.1 die-to-die 互连是超节点互连的最后一公里
讨论 Scale-up 互连的时候,很多人眼睛只盯着机架间的光缆和交换机,忽略了最底层的 die-to-die 互连。实际上,一个超节点里所有的加速器互连,最终都要落到芯片和芯片之间的高速链路上。GPU 内部多个计算 die 之间需要通信,GPU 和 NVSwitch 或符合 UALink 的交换芯片之间也需要通信,而这些通信的物理介质在封装层面就已经被决定了。
Chiplet 是当前大芯片的主流做法。一个 GPU 模组里通常有多个计算 die,加上 IO die、HBM 控制器、光引擎接口,这些 die 之间如果带宽不够,外部互连做得再好都是浪费。所以 NVLink-C2C 和 UCIe 这两套 die-to-die 互连标准,实际是比 NVLink Fusion、UALink 更底层的赛道。
NVLink-C2C 是 NVIDIA 私有 IP,专门用来把自家 chiplet 连成一个大逻辑芯片;UCIe 则是开放的 chiplet 互连标准,目标是让不同厂商的 die 能封装在同一个基板上。两者在带宽密度、能效、延迟这些指标上很像,但生态边界清楚:NVIDIA 完全自用,UCIe 面向全行业。
4.2 UCIe、NVLink-C2C 与光引擎的边界
UCIe 目前定义了两个层面的互连:一个是封装内的 die-to-die,带宽密度极高、距离只有毫米级;另一个是延伸的封装外互连,可以把不同封装里的 chiplet 通过特殊线缆连起来,但这部分的距离和带宽密度会打折。NVLink-C2C 在 NVIDIA 的体系里承担了类似的角色,同时它还能兼容更广泛的 NVIDIA 自家标准。
从这里往回看 NVLink Fusion 和 UALink,会发现它们的胜负手不只在上层协议,更在于谁能在 Chiplet 封装阶段就把互连的物理层成本降下来。比如光引擎,行业正在讨论 co-packaged optics 和 near-package optics,把光模块和交换芯片做进一个封装里。谁能先把光互连的功耗和成本压缩到和铜缆相近,谁就能在超节点规模的竞争中占住身位。
对于 UALink 阵营来说,一个现实问题是控制器 IP 和物理层 IP 大量依赖 Broadcom 等少数厂商,开放的是协议文档,不开放的是关键 IP。这可能导致一个局面:表面上是开放标准,实际主芯片仍然被少数几家掌握。这个问题目前无解,只能靠市场竞争逐步缓解。
4.3 从系统工程师的角度看封装约束
我评估互连方案的时候,会关注一个容易被忽略的指标:每 bit 传输耗能。封装内的 die-to-die 每 bit 能耗最低,PCB 铜线次之,光模块最高。超节点规模越大,光链路占比越高,整个互连系统的能耗占比会从个位数一路涨到百分之一二十,这些在规划供配电时必须算进去。
另一个约束是基板面积和引脚数。一个高端 GPU 支持 NVLink 的所有物理引脚已经占用了大量封装面积,如果再塞进 UALink 控制器,pin 数会非常紧张。这也是为什么大多数芯片厂商不愿意同时完整支持两套互连协议的原因。以后的趋势更可能是:通过可复用的 IO chiplet,一块 GPU 可以根据订单换上不同的互连 chiplet,这对 Chiplet 供应链是个新机会。
5. 横评与工程判断:选型的真实依据
5.1 关键参数对照
| 对比项 | NVLink Fusion | UALink |
|---|---|---|
| 协议归属 | NVIDIA 私有 | 开放联盟标准 |
| 单加速器带宽 | NVLink5 约 1.8 TB/s | 取决于端口数和拓扑,200Gbps 起步 |
| 最大域规模 | 公开演示到 576 GPU,目标更高 | 规范目标约 1024 设备,早期验证 256 卡 |
| 延迟目标 | 亚微秒级(域内) | 规范目标个位数微秒以内 |
| 物理层 | 私有 SerDes + 铜/光混合 | 开放 SerDes,Broadcom 等提供 IP |
| 拓扑 | NVSwitch 全连接/交换矩阵 | 可扩展交换拓扑 |
| 编程接口 | CUDA / NCCL 原生 | 内存语义,软件生态仍在建设 |
| 生态成熟度 | 极高 | 早期 |
这张表只看参数意义不大,关键是理解两个体系的思维差异。NVLink Fusion 是垂直整合思路,它给出的是一个完整的系统;UALink 是水平开放思路,它给出的是一份所有人都能实现的规范。前者适合追求确定性和极致性能的组织,后者适合追求供应链安全和长期自主权的组织。
5.2 不同场景下我倾向的选择
如果你的业务百分之百跑在 CUDA 生态里,没有多余精力养一个跨厂商技术团队,那我建议不要纠结,NVLink Fusion 路线仍然是最稳的。它在训练大规模稠密模型、MoE 模型时的性能可预期性,目前的 UALink 体系还追不上,软件成熟度的差距尤其不是一两年能抹平的。
如果你的公司做 AI 云、超算中心这类需要兼容多种芯片的生意,UALink 值得认真投入。它未来更有机会成为行业公共底座,多厂商竞争会压注成本和创新速度,而且如果你有自研加速器的计划,UALink 几乎是唯一靠谱的开放式 Scale-up 选择。
比较难受的是中间地带。你买了一批 AMD 的卡,本地推理场景多,也做训练,现阶段可能得同时维护 NVLink 最优路径和 UALink 备选路径。这种混合模式在成本上是吃亏的,但它给你保留了以后议价的余地,可以看成一种保险。
5.3 做评估时可以复用的三个方法
第一,不要只看峰值带宽。用目标模型的实际通信模式去做仿真或小规模实测,统计通信占比、等待时间、吞吐量这些更真实的指标。比如张量并行规模越大的模型,对延迟越敏感,UA-link 当前延迟指标是否够用要拿数据说话。
第二,把功耗和散热当成一等公民。连一个 NVL576 还是连一个 UALink 域,物理层面的供电和液冷需求完全不同。别让互连升级的功耗吃掉你在芯片上扣下来的每一瓦省出来的利润。
第三,尽量去参加 UALink 联盟的互操作性测试或者试用早期参考系统。规范文档写得再漂亮,都不如真机跑一轮 LLM 推理实测来得直观。我见过太多纸面参数亮眼、实际联调崩溃的方案。
提示:NVLink Fusion 和 UALink 不是非此即彼的关系。未来三年更大概率是两条路线并行,中间还会有新的桥接方案出现。做架构决策时,留一点可迁移的余地,比押注某个单一标准更稳妥。
最后说点个人体会。做系统这么多年,我发现一个规律:任何互连标准的胜出,技术只占三成,剩下的七成是生态、产业链话语权和工程惯性。NVLink Fusion 现在领先,是因为它身后有十几年积累的软件栈;UALink 有后发机会,是因为市场真的需要第二个选择,而且 Chiplet 技术让更多人有了低价入场的门票。至于谁最终能赢,我不急着下结论,但这两个体系的碰撞绝对值得每一个做 AI 基础设施的人持续追踪。