OpenAI MRC 多路径可靠连接协议
解决同步 AI 训练中的网络瓶颈
同步预训练需要成千上万的 GPU 同步运行;因此,由网络拥塞或硬件故障导致的单次数据传输延迟可能会使整个训练任务停滞。随着集群规模接近 OpenAI 的 Stargate 基础设施,这些“故障放大器”会变得更加频繁且具有破坏性。
在这种规模下,传统网络面临两个主要挑战:
- 拥塞: 当多个 GPU 同时向同一目的地发送数据时,难以避免的瓶颈会出现,但一般的网络拥塞往往源于路由低效。
- 故障影响: 在传统网络中,单个链路或交换机故障常常导致训练任务崩溃,需要从检查点重新启动,或在网络重新计算路由期间出现数秒的停顿。
MRC 架构:多平面网络与数据包喷洒
MRC 扩展了 RDMA over Converged Ethernet(RoCE),并结合了 Ultra Ethernet Consortium(UEC)和基于 SRv6 的源路由技术,以构建更可预测的网络结构。
多平面拓扑
MRC 不再为每个网络接口使用单条 800Gb/s 链路,而是将接口拆分为多条较小的链路(例如,八条 100Gb/s 链路),连接到独立的并行网络,称为“平面”。
这种架构转变使 OpenAI 能够仅使用两层交换机连接超过 100,000 块 GPU,而传统的 800Gb/s 网络则需要三层或四层。层数的减少降低了功耗,减少了易失效组件的数量,并降低了整体网络成本。
自适应数据包喷洒
为了利用多平面网络的冗余,MRC 用数据包喷洒取代单路径流。MRC 不再将一次传输分配给单一路径,而是将单次传输的包在所有不同平面上数百条路径之间进行喷洒。
- 乱序交付: 数据包包含其最终内存地址,使得目标端能够在数据包到达时立即写入内存,无论顺序如何。
- 负载均衡: MRC 监控路径的拥塞情况,并动态将拥塞路径切换为可用路径,以平衡网络负载。
- 故障恢复: 若数据包丢失,MRC 会立即停止使用该路径并重新传输数据。随后使用探测包判断该路径是否已恢复。
- 数据包裁剪: 为区分路径故障和目标端拥塞,交换机可以“裁剪”数据包——去除负载但转发报头——从而触发显式的重传请求,而不将路径标记为故障。
使用 SRv6 源路由简化控制平面
MRC 消除了 BGP(边界网关协议)等动态路由协议的复杂性,这类协议在出现细微故障时往往难以诊断。
通过使用 IPv6 Segment Routing(SRv6),发送方将每个数据包应走的完整路径直接编码到目标地址中,作为一系列交换机标识。交换机只需遵循在部署时配置的静态路由表,且该表永不更改。如果路径失效,发送方会自行检测到丢失并停止使用该路径,从而无需交换机重新计算路由。
生产性能与弹性
MRC 目前已部署在 OpenAI 最大的 NVIDIA GB200 超级计算机上,包括位于德克萨斯州阿比林的 Oracle Cloud Infrastructure(OCI)站点以及微软的 Fairwater 超级计算机。
OpenAI 报告了以下生产结果:
- 链路抖动零影响: 在 tier-0 与 tier-1 交换机之间每分钟出现多次链路抖动,对同步预训练作业没有可测量的影响。
- 无缝硬件维护: tier-1 交换机可以在服务期间重启或修复链路,无需与训练团队协调,因为 MRC 会自动绕过受影响的硬件。
- 优雅降级: 若 GPU 接口失去其八个端口中的一个,训练作业仍能继续。MRC 重新计算路径以避开失效平面,并通知同伴停止使用该平面进行入站流量,从而导致的性能下降远低于物理容量的损失。
关键技术优势概述
| 特性 | 对 AI 训练的影响 |
|---|---|
| 多平面设计 | 仅使用 2 层交换机即可连接 10 万+ GPU,降低功耗和成本。 |
| 数据包喷洒 | 消除核心拥塞并降低流之间的吞吐量波动。 |
| SRv6 源路由 | 用静态控制平面取代复杂的动态路由,在微秒级绕过故障。 |