一枚数据包在 AI 训练集群里迷路,等待它的不是重传,而是整条链路的连锁阻塞。PFC 的反压信号像多米诺骨牌一样逐跳传递,一台交换机卡住,无数流量跟着遭殃。搞过大规模 AI 组网的人,对这场面不会陌生。Meta 开源的 MetaRoCE 协议换了一种打法:不把网络修得完美,而是让端点协议在不完美的以太网上照样跑出高吞吐。规范文档、参考实现、合规测试套件,已一并交给开放计算项目(OCP)。
为什么“无损”成了昂贵的执念
RDMA 的洁癖,要从三十年前说起
RDMA 从诞生那天起就默认一件事:网络不会丢包。它把可靠传输、顺序控制都塞进网卡硬件,性能虽好,却对底层网络有洁癖般的要求。一旦丢包,接收端等不到按序到达的数据,发送端得重传缺失部分,吞吐瞬间崩塌。所以早期的 RDMA 要么跑在 InfiniBand 这种专用网络上,要么在以太网上加一套无损配置,把“不可能丢包”当作前提来奋斗。
PFC 的反压:保住了丢包,惹来了麻烦
PFC(优先级流控)就是为这个前提设计的。它允许交换机在端口拥塞时向上游发送反压帧,让上游暂停发送。听起来很合理:流量太猛,就让源头缓一缓。问题是,反压效应的传导像堵车一样会不断向上游蔓延。一个端口的拥塞,最后可能让整条链路甚至整个交换拓扑都失去吞吐能力。
更阴险的是 PFC 的配置负担。给多少个优先级队列分配 buffer,阈值设多少,watchdog 参数怎么调,每一项都需要长时间调优。生产环境里,PFC 参数配置问题引发的重大事故,几乎每个大厂都遇到过。
规模变大,网络的脾气也在变大
几千台机器时,工程师还能熬夜调参数。到了十万卡、百万 GPU 的规模,PFC 引入的不确定性已经超出人力可控范围。死锁概率升高,故障域变大,队头阻塞的影响被成倍放大。AI 训练又是同步性极强的场景,最怕的不是某个节点慢,而是整个集群被网络拖进无休止的等待。无损网络本来是给 RDMA 护航的,结果在超大规模组网里成了最大的风险源。
不修网络,修协议
乱序交付:打破“先来后到”的执念
MetaRoCE 的第一个关键选择,是原生支持乱序交付。数据包不再被要求按照严格顺序到达,先到就先到,晚到也无妨,接收端自己负责把顺序拼回去。过去网络为了保证顺序,等于把所有数据包变成了一列必须遵守纪律的火车;现在每节车厢可以走不同路线,到了终点再重新编组。这个决定把网络从“队列管理员”的角色里解放出来,传输协议的架构重心也从网络回到了端点。
多路径,不做单点依赖
多路径是配合乱序交付的另一项改变。一条流的数据包可以分散到多条链路上,而不是挤在同一条路径上排队。单路径最怕的就是路一堵,全流遭殃;多路径把拥塞风险摊薄,还能让空闲链路参与分担。路径选择由端点完成,意味着拥塞感知可以实时反映到发送策略上。这种灵活性,是过去完全依赖交换机逐跳转发时很难做到的。
双向拥塞控制:端点是最终决策者
拥塞控制方面,MetaRoCE 没有沿用“交换机打标记、接收端反馈”的老路,而是直接在端点实现双向拥塞控制。两个传输方向都能独立感知拥塞并作出反应,发送端根据反馈调整速率,必要时换一条路径。AI 训练里的流量不是单向灌水,同步语义下数据来回穿梭,任何一个方向的拥塞都会拖慢整个训练。控制回路收敛到端点,也意味着不再依赖每一台交换机策略的一致性。网络内部的细节变得不那么重要了,重要的是两端能实时协同。
把考卷也递出去
规范、参考实现、测试套件:三件缺一不可
Meta 这次通过 OCP 发布的不是一篇论文,而是三样可用的东西:规范文档定义协议行为,参考实现给出可运行代码,合规测试套件提供验证标准。架构师读规范,工程师跑代码,设备厂商做测试。三件套缺一不可——只有规范没有实现,落不了地;只有实现没有测试,生态无法统一。这是用做产品的思路做标准,也是开源最有诚意的方式。
86% 这个数字,含金量在哪
测试数据里最抓眼的是:1% 丢包率下仍能保持 86% 的吞吐。放在 AI 集群的语境下,这代表网络出现零星丢包时,训练任务不会陷入停顿。普通传输协议遇到 1% 丢包,吞吐大概率已经惨不忍睹;86% 意味着通用以太网在有损状态下也能扛住 AI 工作负载。对基础设施团队来说,这比单纯追求 0 丢包更有意义:无损网络的目标是避免失败,MetaRoCE 的目标是容忍失败。
兼容 RDMA Verbs:让既有生态平稳过渡
另一个容易被低估的点:现有 RDMA Verbs API 和软件栈无需修改即可运行。跑在 RDMA 之上的分布式框架、存储系统、通信库,都不用为 MetaRoCE 重写。协议底层逻辑可以推倒重来,但与上层软件的接口不能变。这是一个清醒的工程取舍:给行业一个升级的理由,而不是一个重构的理由。
百万 GPU 组网的新坐标
端到端原则的回归
网络领域有一条老而弥坚的端到端原则:把复杂逻辑放在系统边缘,保持网络本身的简单。MetaRoCE 把重排序、拥塞控制、路径选择都放到端点上,本质上是对这一原则的回归。过去二十年,网络设备变得越来越重,交换机、网卡、协议栈层层加码,试图在网络内部解决所有问题。现在,AI 集群的规模让这条路走到了尽头。对 AI 集群来说,端点算力恰恰是最容易扩展的资源,而网络才是最稀缺的瓶颈。网络可以更简单,端点足够聪明就够了。
别着急造神,问题清单还很长
该泼的冷水不能省。86% 是在理想测试环境下得出的,真实机房的混合流量、多租户争抢、瞬间拥塞,都可能让实际表现打折扣。多租户场景下如何保证公平?极端拥塞下尾延迟能否依然稳定?乱序重排在千万并发连接下会不会成为新的瓶颈?这些问题都需要更多生产环境的验证。MetaRoCE 迈出了很大一步,但前面的路还长。
网络不必完美,协议必须聪明
整个行业为了“无损”两个字付出了太高的代价:PFC 参数、buffer 规划、流量优先级、拓扑设计,全都因为一个假设——网络不能丢包。MetaRoCE 承认丢包是常态,然后让端点用更聪明的办法对抗常态。这已经不是简单的无损容忍,而是对网络哲学的重新定义。通用以太网就能支撑百万 GPU 规模的 AI 集群,意味着不需要为每个集群定制昂贵而脆弱的专用网络方案。AI 基础设施的下一套默认假设,可能就此被改写。

