OpenAI公开大规模稳定训练的秘密,英伟达AMD英特尔都受益
克雷西 发自 凹非寺量子位 | 公众号 QbitAIOpenAI这次又真·Open了一下。刚刚OpenAI通过OCP开放了超大规模AI训练时使用的网络协议——MRC。这次开放的MRC是实现微秒级故障恢复、能支持10万块以上GPU高效协作的底层通信协议。核心奥义就是在大规模的训练环境下确保网络通信的稳定性。而且这一波是和硬件厂商合作在OpenAI的组织下英伟达、AMD和英特尔都参与了这个项目。有网友表示把这些厂商聚在一起合作制定标准简直比实现AGI还难以协调。大规模集群也要通讯稳定这套MRCMultipath Reliable Connection协议是OpenAI联合英伟达、AMD、英特尔、微软和博通花了两年时间做出来的上周通过Open Compute Project向全行业开放。它现在跑在OpenAI所有最大规模的NVIDIA GB200超算上包括OCI在德克萨斯Abilene建的星际之门和微软的Fairwater超算。这件事的背景是同步预训练synchronous pretraining的通信模式对网络极度敏感。十几万块GPU在每个训练step里以all-reduce为主要通信原语协同工作单次迭代可触发数百万次点对点数据传输。这类集合通信的完成时间由最慢的那次传输决定任何链路拥塞或丢包都会以滚雪球的形式传导到整个job轻则造成吞吐骤降重则触发checkpoint回滚。随着集群规模扩大网络故障的绝对频率只会上升。为了解决这个问题MRC主要做了三件事。第一件是多平面网络拓扑Multi-Plane Network。传统做法是把800Gb/s的网卡当一整条链路用整个集群需要三四层交换机才能连起来。MRC把它拆成8条100Gb/s子链路各自连到独立的交换机形成8个并行的网络平面。单台交换机能接入的端口数因此扩大了8倍拓扑也随之扁平层数从三四层压到两层13万块GPU的互联成本和故障点都随之大幅下降。层数少还意味着故障点少8个平面并行又意味着冗余路径大幅增加这也是后面两项技术能够成立的物理基础。第二件是自适应包喷射Adaptive Packet Spraying。经典RoCE要求同一条RDMA传输的所有数据包走同一路径以维持顺序语义这在多平面环境下会造成严重的流量碰撞和路径利用率不足。MRC扩展了RoCE的乱序处理能力在包头中嵌入目标内存地址使接收端可以将乱序到达的包直接写入正确位置从而允许将单次传输的包喷射到数百条路径上并行传输。拥塞检测和路径切换则是在连接层完成发现拥塞则换路检测到丢包则立即停用该路径并触发重传整个响应在微秒级完成。这种模式可以理解为原来一批货必须走同一辆车按顺序送达MRC让这批货同时上几百辆车分头跑每个箱子上贴好收货地址到了直接入库哪条路堵就换哪条。集合通信对尾延迟极度敏感这套机制几乎消除了网络核心的拥塞直接压低了训练step完成时间的抖动。第三件是用SRv6IPv6 Segment Routing静态源路由取代动态路由协议。传统方案依赖BGP在交换机间动态计算和同步路由链路故障时路由收敛需要数秒甚至更长这段时间内训练流量会大面积中断。SRv6将路径决策完全移到发送端把逐跳的交换机标识符序列直接编码进数据包的目标地址沿途每台交换机只需按本地静态路由表执行转发无需感知任何拓扑变化。还是拿物流来类比这就相当于出发前就把完整路线写在包裹上每个路口的工作人员只管照单操作不需要和任何调度中心联系。某条路径出现故障MRC发送端直接停止在该路径喷包、切换到其他路径交换机侧零感知、零动作整类路由收敛引发的抖动从根本上被消除。三层设计从拓扑、传输、路由三个维度同时发力确保了大规模下的网络可靠性。One More ThingMRC技术博客公布之后OpenAI还同步发布了一期播客。这期播客中OpenAI网络负责人Mark Handley和工作负载负责人Greg Steinbrecher聊了MRC从动机到落地的完整过程。感兴趣的话可以去听一听。参考链接https://openai.com/index/mrc-supercomputer-networking/播客地址https://www.youtube.com/watch?vTiW96H5HmAw一键三连「点赞」「转发」「小心心」欢迎在评论区留下你的想法—完—5月20日我们将在北京金茂万丽酒店举办一年一度的中国AIGC产业峰会。首波嘉宾阵容已公布昆仑万维方汉、智谱吴玮杰、EverMind邓亚峰、风行在线易正朝、百度秒哒朱广翔、Fusion Fund张璐、香港大学黄超、MarsWave冯雷都来了了解详情请你和我们一起不再只是讨论AI的未来而是现在就用起来。 报名参会一键关注 点亮星标科技前沿进展每日见