利用 MRC(多路径可靠连接)解锁大规模 AI 训练网络

OpenAI Blog 工具

摘要

OpenAI 发布了 MRC(Multipath Reliable Connection),这是一种与行业合作伙伴共同开发的全新网络协议,旨在提升大规模 AI 训练集群的性能和可靠性。该规范通过 Open Compute Project 发布,以标准化基础设施,实现高效的超级计算机运行。

OpenAI 推出了 MRC(Multipath Reliable Connection),这是一种通过 OCP 发布的全新超级计算机网络协议,用于提升大规模 AI 训练集群的可靠性和性能。
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/05/08 09:23

# 超级计算机网络加速大规模 AI 训练 来源:https://openai.com/index/mrc-supercomputer-networking/ 前沿模型训练依赖于可靠的超级计算机网络,以便在 GPU 之间快速传输数据。为了提升速度与效率,OpenAI 与 AMD、Broadcom、Intel、Microsoft 和 NVIDIA 合作开发了 MRC(Multipath Reliable Connection,多路径可靠连接):一种新型协议,可提升大型训练集群中的 GPU 网络性能与弹性。我们今天通过 Open Compute Project(OCP)发布了 MRC(在新窗口中打开)(https://www.opencompute.org/documents/ocp-mrc-1-0-pdf),供更广泛的行业使用。 每周有超过 9 亿人使用 ChatGPT,我们的系统正在成为 AI 的核心基础设施,帮助全球各地的人们和企业利用能力日益增强的模型进行构建。在 Stargate(https://openai.com/index/building-the-compute-infrastructure-for-the-intelligence-age/)启动之前,我们与合作伙伴经过数年精心协作,共同开发、启动并维护了我们前三代超级计算机。这段宝贵的经验让我们坚信,要高效利用 Stargate 规模的算力并成功实现我们的使命,我们需要重新思考并大幅简化技术栈每一层的复杂性——包括网络设计。 发布 MRC 规范是 OpenAI 整体计算战略的一部分:关键基础设施层的共享标准有助于更高效、更可靠地扩展 AI 系统,并覆盖更广泛的合作伙伴生态系统。在这篇文章中,我们将介绍 MRC 的设计,包括:i)如何构建多平面高速网络以创建冗余来应对网络故障,同时减少组件数量和功耗;ii)MRC 的自适应数据包喷洒如何几乎消除核心拥塞;iii)我们的部署如何利用静态源路由绕过故障并消除整类路由故障。这些优势协同作用,使我们能够更快地向所有人交付更优质的模型。 ## 为什么网络需要新设计 训练大型 AI 模型时,单一步骤可能涉及数百万次数据传输。一次传输延迟可能波及整个任务,导致 GPU 空闲等待。网络拥塞、链路故障和设备故障是传输延迟和抖动的最常见来源。 随着集群规模增大,这些问题变得更加频繁且难以解决。这使得网络技术成为 Stargate 设计的关键部分。 为了实现 Stargate 超级计算机的当前规模,我们面临两个关键网络挑战。首先,应尽可能降低网络拥塞的可能性。存在不可避免的瓶颈,例如两个 GPU 同时向同一目的地发送数据。但除了这些情况外,我们应通过设计避免拥塞。 其次,我们需要最小化网络故障对训练任务本身的影响。在足够大的规模下,即使最佳网络也会有持续的链路和交换机故障背景水平。以前,单次故障常常导致训练任务崩溃,迫使从保存的检查点重启,或在网络重新计算路由时停滞数秒。此类中断在 GPU 周期和时间上都是昂贵的。对于同步预训练——许多计算机上的众多 GPU 以锁步方式协作训练一个 AI 模型——尤其如此。我们运行的任务越大,任何单次链路抖动或故障的影响就越大。这些工作负载充当一种"故障放大器",因此防止这种情况已成为关键。 ## 我们的答案:MRC 我们的目标不仅是构建快速网络,还要构建即使在故障情况下也能提供非常可预测性能的网络,以保持训练任务持续运行。 MRC 扩展了 RDMA over Converged Ethernet(RoCE)——这是一种由 InfiniBand Trade Association(IBTA)制定的标准,支持 GPU 和 CPU 之间的硬件加速远程直接内存访问。它借鉴了 Ultra Ethernet Consortium(UEC)开发的技术,并通过基于 SRv6 的源路由扩展以支持大规模 AI 网络结构。 MRC 已部署在 OpenAI 所有最大的 NVIDIA GB200 超级计算机上,用于训练前沿模型,包括我们与 Oracle Cloud Infrastructure(OCI)在德克萨斯州阿比林的站点,以及 Microsoft 的 Fairwater 超级计算机。MRC 已被用于训练多个 OpenAI 模型,利用 NVIDIA 和 Broadcom 的硬件。今天,MRC 规范作为 Open Compute Project(OCP)贡献提供给社区使用和构建。我们共同撰写了一篇论文详细记录我们的经验,*《Resilient AI Supercomputer Networking using MRC and SRv6》*(在新窗口中打开)(https://cdn.openai.com/pdf/resilient-ai-supercomputer-networking-using-mrc-and-srv6.pdf)。 ## 基础:多平面网络 构建高弹性网络要求我们从具有足够自然冗余的网络拓扑开始,即使网络中的链路或交换机发生故障,所有流量也能获得良好性能。 我们不是将每个网络接口视为一条 800Gb/s 链路,而是将其拆分为多条较小的链路。例如,一个接口可以连接到八个不同的交换机。然后您可以构建八个独立的并行网络或平面,每个以 100Gb/s 运行,而不是单一的 800Gb/s 网络。 这一变化对集群形态有很大影响。一个可以连接 64 个 800Gb/s 端口的交换机,改为可以连接 512 个 100Gb/s 端口。这使您仅用两层交换机就能构建完全连接约 131,000 个 GPU 的网络。传统的 800Gb/s 网络需要三到四层。 *MRC 对多平面网络的支持意味着我们仅用两层交换机就能连接超过十万个 GPU。与常规方法相比,这降低了所需功耗、可能故障的组件数量以及网络总成本。* 结果是成本更低、功耗更低、比传统网络设计提供更多路径多样性的网络。它还允许更多流量保持在 Tier 0 交换机本地,这可以提升性能。 然而,所有这些路径多样性可能难以充分利用。用于 AI 训练的传统网络协议通常要求每次传输遵循单一路径,以便数据包按序到达。在大型多平面网络中,这造成两个问题:不同流量可能在同一链路上碰撞并产生拥塞,且每个流量只能使用可用平面之一。如果我们不做其他改变,多平面网络将导致显著拥塞和整体性能不佳。 *使用单路径流量时,如经典 RoCE 部署中,个别链路频繁变得拥塞。因为集合通信对最坏情况延迟敏感,这对 AI 训练工作负载尤其具有破坏性。* *数据包流量碰撞导致拥塞。动画由 Mark Handley 制作。* ## MRC 的转变:将数据包喷洒到数百条路径 MRC 从根本上改变了这一模式。不是将传输分配到一条路径,MRC 将单次传输的数据包喷洒到网络中的数百条路径上,跨越所有不同的平面。数据包可能乱序到达,但所有 MRC 数据包都包含其最终内存地址,因此目的地可以在它们到达时将其交付到内存。 *MRC 将数据包同时分散到多条路径,减少可能拖慢同步 AI 训练的拥塞。* *通过在多条路径上分散流量,MRC 避免了网络中的热点,防止某些事务比其他事务耗时更长。这避免了会影响同步 AI 训练的减速。* *跨多条路径的数据包喷洒。动画由 Mark Handley 制作。* 每个 MRC 连接为其使用的众多路径保持少量状态。如果检测到某条路径正变得拥塞,它会将该路径替换为另一条,在整个网络中平衡负载。如果丢失数据包,它采取安全选项:假设该路径上的某些东西可能已故障,并立即停止使用它,重传可能已丢失的任何数据包。MRC 停用一条路径后,会发送探测数据包检查是否真的发生了故障,如果是,是否已恢复。 故障并非数据包丢失的唯一原因;另一个常见来源是目的地拥塞。MRC 通过数据包修剪来处理这种情况。如果交换机否则将因拥塞而丢弃数据包,它会修剪掉负载,仅转发头部到目的地,触发显式重传请求。数据包修剪减少了我们错误地将丢失视为路径故障的假阳性。 这种多平面拓扑、喷洒、负载均衡和修剪的组合意味着 MRC 连接可以在微秒时间尺度上检测网络故障并绕过它们,最小化对同步训练任务的影响。相比之下,传统网络结构可能需要数秒甚至数十秒才能稳定并绕过故障。 ## 用源路由替代动态路由 MRC 使我们能在简化网络方面更进一步。 传统上,交换机运行动态路由协议如 BGP(Border Gateway Protocol)来计算可用路径并绕过故障。但交换机是运行复杂软件的复杂设备。当它们以微妙方式故障时,这些问题可能难以诊断,并可能导致连接故障直至修复。 使用 MRC,动态路由变得不那么必要。如果数据包在某条路径上丢失,MRC 就停止使用该路径。我们采取了更激进的措施,禁用动态路由,转而使用 IPv6 Segment Routing(即 SRv6)。SRv6 让发送方直接指定每个数据包应通过网络采取的路径。它通过将交换机标识符序列嵌入每个数据包的目的地址来实现这一点。 *SRv6 允许发送方将每个数据包应采取的完整路径编码到网络中。因为这是确定性的,发送方可以独立地对给定路径上的拥塞或丢失做出反应。* 分解说明:转发时,交换机检查其自身标识符是否存在。如果是,它通过偏移目的地址移除该标识符,从而显露下一个交换机的标识符。然后交换机在静态路由表中查找该标识符,确定下一步将数据包发送到何处。与动态路由不同,此静态路由表在交换机首次配置时设置,之后不再更改。 MRC 使用 SRv6 在所有网络平面以及每个平面上的众多路径同时喷洒数据包。如果某条路径故障,MRC 简单地停止使用它。交换机不需要重新计算路由或做任何其他事情,只需盲目遵循配置时设置的静态路由。 ## 由 Oracle Cloud Infrastructure(OCI)在德克萨斯州阿比林建造的 Stargate 超级计算机 ## 生产环境中的表现 我们的训练网络有数百万条链路。虽然这些网络质量很高,但在足够规模下,一些链路抖动不可避免。训练期间,我们观察到 Tier-0 和 Tier-1 交换机之间每分钟发生多次链路抖动的情况,但 MRC 确保了它们对同步预训练任务没有可测量的影响。事实上,它们的影响小到我们甚至不需要优先立即修复这些链路。 可能故障的不只是链路。在针对 ChatGPT 和 Codex 的近期前沿模型训练期间,我们不得不重启四个 Tier-1 交换机。以前,重启交换机需要运维团队非常小心以免干扰训练。使用 MRC,我们甚至不需要与集群中运行训练任务的团队协调。许多链路维修也是如此。我们以前需要与运维团队协调,在维护工作需要时禁用链路。现在我们可以在链路仍在服务中时进行维修。如果链路工作良好,MRC 会使用它。如果不行,MRC 会避开它直到修复。 *训练运行期间捕获的真实数据,显示 MRC 对 T1 交换机完全丢失的反应。训练任务经历了暂时减速,但很快恢复。* 在 MRC 之前,如果 GPU 网络接口与 Tier-0 交换机之间的链路故障,训练任务就会失败。使用 MRC,任务以合理性能继续运行。如果 8 端口网络接口丢失一个端口,最大速率降低八分之一。MRC 检测到这一点,重新计算路径以避开故障平面,并立即告诉对等方不要使用该平面接收流量。大多数故障链路在一分钟内恢复,此时 MRC 将该平面重新投入使用。 由 GPU 接口链路丢失引起的减速在不同训练任务中有所不同,但在实践中,往往显著小于物理容量损失的量。 ## 关键改进 MRC 最终在扩展超级计算机时为我们带来三个关键优势。 首先,它使我们能够为超过 100,000 个 GPU 的超级计算机构建多平面高速网络,仅使用两层以太网交换机。这为我们提供了足够的冗余来应对网络故障,同时比等效的三层或四层单平面网络消耗更少功率。 其次,MRC 的自适应数据包喷洒负载均衡得足够好,我们在核心网络中几乎看不到拥塞。这大大减少了同步训练期间流量之间的吞吐量变化,而在同步训练中消除异常值对性能至关重要。这也意味着当多个任务共享集群时,它们不会相互影响性能。 最后,MRC 使用 SRv6 源路由快速绕过故障,仅通过工作路径发送数据包。这使我们能够运行简单的静态网络控制平面,并消除整类动态路由故障行为。 ## 开放协议 MRC 显著提升了我们训练新前沿模型的能力,并确保我们的网络跟上研究人员雄心勃勃的 AI 路线图。它比以前的方法带来了显著改进,并有助于加速我们实现将 AGI 益处带给每个人的目标,可靠地实现。我们为促成此事的跨行业协作感到自豪。 随着训练集群持续增长,网络设计越来越决定可用算力中实际能使用多少。MRC 帮助我们让 GPU 在拥塞、链路故障和以往会干扰训练的维护事件中持续协同运行。在有意义的规模上,这种可靠性和效率不是锦上添花;它是同步前沿模型训练得以实现的一部分。 **致谢** 跨行业协作将继续对解决 AI 诸多最难题目至关重要。我们感谢与 AMD、Broadcom、Intel、Microsoft 和 NVIDIA 合作开发 MRC,以及 Microsoft Azure、OCI、NVIDIA 和 Arista 与我们合作大规模部署。我们都致力于推进生态系统,并期待看到行业未来将 MRC 带向何方。

相似文章

大规模神经网络的训练技术

OpenAI Blog

OpenAI 展示了在分布式 GPU 集群上训练大规模神经网络的全面技术,涵盖数据并行、管道并行、张量并行和专家混合等方法,以克服工程和可扩展性挑战。