← 文章 / 芯片硬件
Meta 工程博客 3小时前 · 2026-08-31 13:03:03 · 1 阅读

MetaRoCE:专为 AI 规模以太网打造的新一代 RDMA 传输协议

  • 前沿 AI 模型的训练和推理依赖快速、可靠的网络在 GPU 之间搬运数据,避免算力空转。
  • 为了在大规模场景下应对这一挑战,Meta 设计了 MetaRoCE——一款专为 AI 工作负载打造的、基于普通以太网的全新 RDMA 传输协议。
  • 我们通过开源计算项目(OCP)发布 MetaRoCE 规范、参考软件实现以及合规测试套件,方便整个行业采用、实现并在此基础上继续构建。

在 Meta,我们一直是以太网成为 AI 基础设施首选网络这一行业共识的重要推动者。我们已经证明 RoCE 能够支撑大规模分布式 AI 训练。现在,我们在此基础上推出 MetaRoCE——一款面向百万 GPU 规模的以太网协议。

我们已经 把集群规模扩展到数十万块 GPU,覆盖多个数据中心和地理区域。无论是训练下一代前沿模型,还是在全球范围内提供推理服务,网络都处于关键路径上。

集合通信操作(如 all-reduce 和 all-to-all)在训练过程中需要同步上千个加速器,而最慢的一次传输决定整个任务的节奏。在推理场景下,分布式模型分片之间的低延迟通信直接影响着数亿用户的响应时间。即使是极小的网络摩擦,也会让大量算力被白白浪费。

标准 RoCE 假定网络能按序交付每一个数据帧,依赖 PFC,并不鼓励在多平面和大规模网络中能够提升性能的报文 spraying 机制。MetaRoCE 则面向加速器数量持续增长、节点间距离不断拉大的网络场景,提供高吞吐、低尾延迟和简洁的运维体验。

MetaRoCE 的工作原理

MetaRoCE 的核心洞察很简单:网络看到的是报文,而 NIC 看到的是意图。传统架构把智能集中在网络层面,依靠交换机来保证无丢包并维持报文顺序。

通过将智能下沉到端点,MetaRoCE 把网络拆分成大量细粒度的逻辑路径,每条路径都带有独立的实时遥测数据——逐路径的 RTT、ECN 状态与利用率。这种可见性解锁了传统 RDMA 难以实现的能力。

原生乱序交付

MetaRoCE 把数据包散布到多条路径上,因此乱序到达是设计上的默认行为。传输层把乱序到达视为正常情况:每个数据包自带目的地信息,落地时直接写入最终内存位置,无需重排缓冲,也不会产生队头阻塞。

写入操作把目的地信息放在每个包中;发送操作携带与已发布接收缓冲区的匹配信息,因此即使排在它前面的消息尚未到达,发送也能正确落位,而且不需要额外的往返来获取数据去向。集合通信库可以在适合的场景下使用双边消息,而不是把所有通信都压缩成 Write。

原生多路径

MetaRoCE 为每条连接提供一等公民的路径,并按包粒度在其间做负载均衡。每条路径使用不同的 UDP 源端口作为 ECMP 熵,网卡可以随时修改它来把流量从不良路由上引走。在多平面(multiplane)网络中,平面选择完全交给网卡决定,网络的使用效果取决于网卡的负载均衡能力。由于每条路径独立维护自己的窗口与往返估计,传输层能够区分拥塞与故障,并主动再平衡——某条链路过热或失效时只会拖慢那条路径,而不会阻塞整条连接。

从设计上容忍丢包

MetaRoCE 把以太网视为有丢包的网络,并且不要求它做到无丢包——既不用 PFC 也不用暂停帧。由于每条路径都带有独立的有序序列号,其 256 位选择性确认位向量中出现空缺就意味着丢包,而不是乱序。在其他协议里 SACK 主要用来避免重发已到达的数据;在这里,一旦出现空缺,就立刻在丢失的那条路径上精准重传那个缺失的数据包。

双向协同的拥塞控制

MetaRoCE 将传统基于 ECN、由发送端驱动的 AIMD 拥塞控制,与由接收端驱动的公平份额速率提示相结合。窗口按路径和连接分别维护,因此一旦收到拥塞标记,只会缩减出现拥塞的那条路径,并将后续报文引向通畅的路径。每条 ACK 中,接收端都会返回它为该发送端分配的入站带宽份额,发送端因此能直接趋近正确的速率,而无需反复探测。Incast 问题在一两个 RTT 内即可收敛,同时具备更好的公平性和更低的尾延迟。

拓扑无关

MetaRoCE 只向网络索取两样每个交换机都已有的能力:ECN 标记和 ECMP。它既不要求报文裁剪、带内遥测、基于信用的流控,也不要求交换机侧做报文喷洒;而当网络提供这些能力时,它也不会因此失效。同一个传输层可以跑在胖树、多平面、深缓存、浅缓存等各种组网之上,也能跑在配置不可控的公有云厂商网络上。由于不涉及任何专有机制,组网可以自由地围绕成本和布线进行优化。

大规模下的统一连接

一个队列对(QP)同时承载有序的消息流和带宽。传统 RDMA 要获得更多消息流或带宽,就只能开启更多 QP(每对节点之间往往多达数十个),而每个 QP 的拥塞窗口彼此互不可见,并且在 NIC 上各自维护一份状态。

MetaRoCE 将两者解耦。单个连接在向上层承载多个独立有序流(每个通信域或集合操作一个),在向下层承载多条路径,并共用同一套拥塞控制器。连接状态不再随工作负载的并行度线性膨胀。

应用层基本无需改动——现有的 RDMA Verbs API 和软件栈可直接使用,不需修改。多平面等增强功能则通过扩展 API 提供支持。

MetaRoCE 实践

为加速硬件验证,我们与 AMD 合作,在其 Pensando 可编程 NIC 上实现了 MetaRoCE。

在一个运行 RCCL 集合通信的 64 节点 AMD GPU 集群上,我们针对 all-reduce 和 all-to-all 操作,将 MetaRoCE 与 RoCEv2 进行了直接对比。结果与设计目标高度一致:

MetaRoCE 在吞吐和流完成时间上均持续优于 RoCEv2。

在导致 RoCEv2 性能下降的丢包条件下,MetaRoCE 在 1% 丢包率时仍能保持约 86% 的吞吐量,即便在 10% 的极端丢包率下也能持续提供可用带宽——实现优雅收敛而非彻底崩溃。

在 4 平面和 8 平面拓扑上、连接数多达 4,000 的多平面验证中,吞吐量随平面数量呈线性扩展。

在模拟平面故障期间,该协议展现出优雅的自主恢复能力——无需应用参与或运维介入,流量即可自动重新分布。

这些结果印证了 MetaRoCE 的核心设计理念:从第一天起就将丢包纳入设计考量,并把智能下沉到网络边缘,由此得到的传输协议在理想条件下表现更优,在异常情况下也能优雅降级。

天生开放

AI 基础设施需要依靠开放共享的标准来加速整个生态的创新。MetaRoCE 将 OCP(开放计算项目) 以太网可扩展统一网络(ESUN) 倡议在网络架构层面所确立的开放、多厂商理念,延伸到了传输层。

因此,我们决定将 MetaRoCE 开源:

通过 OCP 开放规范:完整协议规范已贡献给 OCP,任何厂商都可据此实现并构建可互操作的硬件。

多种网卡实现:MetaRoCE 设计为可在不同的网卡架构上运行——无论是可编程网卡还是固定功能网卡。我们已在 AMD Pensando 硬件上完成验证,其他厂商的实现工作也在推进中。

生产级合规套件:我们开发了合规套件,为硬件厂商提供工具,用来证明其实现与协议规范一致。

软件参考实现:libsoftmetaroce 库提供了一个完整、可运行的传输协议栈,基于普通 Linux 上的标准 UDP 套接字即可运行,无需专用硬件。它既可作为硅片开发的行为权威模型,也是我们统一合规框架的基础。

未来之路

借助 MetaRoCE,我们在横向扩展网络方面取得了显著进展——在数据中心的普通商用以太网之上,实现了高性能、高弹性的传输。但 AI 基础设施横跨多种距离和时延场景,每种场景都带来了我们正在积极应对的不同挑战:

纵向扩展:在单机架内,加速器之间需要交换小消息,每一纳秒都至关重要。MetaRoCE 消除了两大主要时延来源:乱序缓冲区和 PFC(基于优先级的流量控制)。我们目前正在针对处理单元之间直接发起的短内存操作,优化其快速信令路径。

跨域扩展:跨域扩展使单个作业能够跨越相距数千公里的建筑群。往返时延拉长到毫秒级,不同路径间的微小差异也会累积放大。把路径视为一等公民,正是 MetaRoCE 能够灵活适应的关键——优先选择畅通的路径,并在各个层面寻求公平性。未来的重点是,如何在争用激烈的长距离链路上实现公平共享。

存储 / KV 缓存场景:分布式存储容易引发 incast——即单次读请求扇出到大量服务器、它们同时回复。接收端驱动的速率提示,让接收方(无论是接收写入的存储服务器,还是接收读取的客户端)能够调控入站速率,无论请求发往十台还是一千台服务器。新的课题在于,在网络速度不一、请求大小各异的情况下,依然保持速率的精确性。

携手共建面向 AI 基础设施的以太网未来

今年十月,我们将在 2026 OCP 全球峰会上发布 MetaRoCE 规范、一套经过 DPDK 优化的软件参考实现,以及我们的生产合规框架。

我们选择以开放的方式推进这项工作,因为未来的挑战需要广泛的产业协作。如果您正在研发网卡、交换机或 AI 基础设施,我们诚挚邀请您加入我们。

分享:

原始来源: Meta 工程博客

评论 (0)