🔷 项目地址:https://github.com/open-rdma/open-rdma
欢迎感兴趣的读者Star及贡献代码。
引言
RDMA(Remote Direct Memory Access,远程直接内存访问)技术诞生于高性能计算(HPC)时代,其设计目标是实现超低延迟、高带宽的节点间通信。通过绕过操作系统内核、直接在用户态完成网络I/O,RDMA能够将网络延迟降低到微秒级别,这使其成为超算集群和高频交易系统的核心技术。
然而,当我们步入大模型时代,RDMA面临着前所未有的挑战。GPT-4、Llama等大型语言模型的训练需要数万甚至数十万张GPU协同工作,网络通信成为决定训练效率的关键瓶颈。虽然RDMA仍然是这些AI集群的首选网络技术,但其20多年前为HPC设计的诸多假设,正在成为阻碍大模型训练效率提升的"历史包袱"。
本文将深入分析大模型时代对网络的新需求,以及RDMA的哪些设计已经开始"拖后腿"。
本文是「RDMA技术科普系列」的第二篇。如果你对高性能网络、AI基础设施、GPU集群互连,或者开源RDMA生态感兴趣,也欢迎关注我们的开源项目 Open-RDMA,一起推动下一代开放AI基础设施的发展:https://github.com/open-rdma/open-rdma
01、大模型时代对网络的新需求
<u>训练规模的爆炸式增长</u>
传统HPC集群通常由几十到几百个节点组成,而现代大模型训练集群的规模已经突破了这一量级。Meta、OpenAI、Google等公司的训练集群规模已达数万张GPU,前沿研究甚至在探索10万+GPU的超大规模集群。这种规模的跃升对网络架构提出了全新的挑战。
<u>流量模式的根本性变化</u>
大模型训练的网络流量模式与传统HPC有着本质的不同:
- 集合通信主导:大模型训练大量使用AllReduce、AllGather、ReduceScatter、AllToAll等集合通信原语。以数据并行为例,每个训练步骤结束后,所有GPU需要通过AllReduce操作同步梯度。这种"多对多"的通信模式与HPC中常见的点对点通信截然不同。
- 突发性大象流:大模型训练产生的网络流量呈现出明显的"突发性"特征——在同步阶段,所有GPU几乎同时开始传输大量数据,瞬时带宽可达400Gbps甚至更高。这些流量被称为"大象流"(Elephant Flow),它们数量少但体积巨大,持续时间长。
- 低熵流量模式:由于大模型训练的同步特性,流量模式具有高度的可预测性和低随机性。这种低熵特征会破坏传统负载均衡算法(如ECMP)的有效性。
<u>对延迟和可靠性的极端要求</u>
在大模型训练中,一个落后的GPU会拖慢整个集群的训练速度——这被称为"木桶效应"。因此:
- 尾延迟敏感:不仅平均延迟重要,尾部延迟(P99、P99.9)同样关键。即使单个RDMA操作出现延迟,也会影响整个集合通信的完成时间。
- 极高可靠性要求:网络故障可能导致训练作业中断,需要从检查点重启。研究表明,网络问题(网卡故障、线缆问题等)可能占到训练作业失败原因的一半。
02、RDMA的历史包袱分析
<u>Verbs API:为CPU设计的过时抽象</u>
RDMA的标准编程接口是Verbs API,这是一个极度底层的驱动级接口。更关键的问题是:Verbs API是为CPU设计的,而非GPU。
在RDMA诞生的年代,计算的主角是CPU,网络通信的发起者和数据的处理者都是CPU。因此,Verbs API的整个设计都围绕CPU展开:
- 所有RDMA操作都由CPU发起和控制
- 内存注册、队列管理等操作都需要CPU介入
- 完成通知(Completion)需要CPU轮询或中断处理
使用Verbs API编程,开发者需要:
- 手动锁定内存页(Memory Pinning)并向设备注册
- 构造包含多达15个以上参数的I/O请求记录
- 管理Queue Pair(QP)、Completion Queue(CQ)等复杂资源
- 处理各种边界情况和错误恢复
然而,在大模型训练时代,GPU才是计算和数据的主角。训练数据存储在GPU显存中,梯度计算在GPU上完成,GPU之间需要直接交换数据。传统的RDMA工作流程变成了:
GPU显存 → CPU内存 → RDMA网卡 → 网络 → RDMA网卡 → CPU内存 → GPU显存这种"GPU→CPU→网卡→CPU→GPU"的路径引入了不必要的数据拷贝和CPU参与,严重影响性能。
为了解决这个问题,NVIDIA推出了GPUDirect RDMA技术,允许网卡直接访问GPU显存,绕过CPU内存。但这只是一个"补丁"式的解决方案——Verbs API本身仍然是CPU中心的,GPU只是被"嫁接"到这个体系中。
更进一步的尝试是IBGDA(InfiniBand GPU Direct Async),允许GPU直接发起RDMA操作,无需CPU参与。但这需要特定硬件支持(如NVIDIA ConnectX网卡),且编程模型更加复杂。这些都是在原有架构上的修补,而非为GPU原生设计的网络接口。
正如研究者所指出的:"RDMA具有低层次的编程抽象,现有系统的原始设计是利用RDMA性能优势的障碍。"
目前缺乏一个简单易用的、为GPU原生设计的跨平台RDMA库。现有的RDMA库基本上都与NVIDIA的ConnectX网卡绑定,这进一步加剧了移植困难。
<u>严格有序传输:过度的保证</u>
RDMA最常用的传输类型是RC(Reliable Connection),它提供严格的内存保序——数据包必须按发送顺序到达,后发的写操作必须等待先发的写操作完成。这种设计源于传统HPC应用对内存一致性的严格要求。
然而,严格保序是有代价的,而且在大模型训练场景中,这个代价可能是不必要的。
严格保序的性能代价
为了维护严格的有序性,RDMA硬件和协议需要:
- 限制并发:后续操作必须等待前序操作完成确认
- 单路径传输:为保证顺序,同一连接的数据包只能走单一路径,无法充分利用多路径网络的带宽
- 重传阻塞:一旦某个包丢失需要重传,后续所有包都必须等待,造成队头阻塞
- 硬件复杂度:网卡需要维护复杂的状态机来保证顺序
大模型训练真的需要严格保序吗?
在大模型训练中,典型的通信模式是集合通信(AllReduce、AllGather等)。这些操作的语义是:所有参与者在barrier点同步,确保数据完整到达即可。
换言之,大模型训练需要的是:
- 数据完整性:所有数据最终都要到达
- 同步点一致性:在barrier点所有数据就绪
- 不需要:传输过程中每个字节的严格顺序
这意味着,一种"松弛保序"(Relaxed Ordering)的模型可能更适合AI工作负载:允许数据包乱序到达,在接收端重组,只在必要的同步点保证一致性。这样可以:
- 充分利用多路径网络,提高带宽利用率
- 减少队头阻塞,降低尾延迟
- 简化硬件设计,降低成本
<u>拥塞控制的困境</u>
RDMA网络的拥塞控制是一个历史悠久的难题,在大模型训练场景下尤为突出。
PFC的结构性缺陷
Priority Flow Control(PFC)是RoCE网络实现"无损"传输的基础机制。当交换机缓冲区即将溢出时,PFC会向上游发送暂停帧,阻止更多数据包到来。
然而,这种粗粒度的暂停机制带来了一系列问题:
- PFC死锁:在特定的流量模式下,多个交换机的队列可能形成环路依赖,导致永久性的网络停滞。一旦发生PFC死锁,整个网络fabric的低延迟特性就会崩溃。
- 队头阻塞:PFC暂停的是整个优先级队列,而非特定的流。这意味着一个拥塞的流会阻塞同队列中所有其他流的传输,即使它们的目的地完全不同。
- 拥塞转移:研究发现,PFC的部署将拥塞的位置从传统TCP/IP网络的边缘主机转移到了RDMA网络的核心交换机。这使得问题更加难以定位和解决。
<u>负载均衡的失效</u>
传统数据中心网络使用ECMP(Equal-Cost Multi-Path)进行负载均衡,它根据数据包的哈希值将流量分配到不同的等价路径上。
然而,ECMP在大模型训练场景下表现不佳:
- 大象流主导:AI训练流量由少量巨大的、长寿命的流组成,而非大量小流。当几条大象流被哈希到同一路径时,会造成严重的拥塞,而其他路径却处于空闲状态。
- 流量分布倾斜:ECMP在流量大小分布均匀时效果最好。但大模型训练的流量分布高度倾斜,这恰恰是ECMP最不擅长处理的场景。
- 低熵问题:训练流量的可预测性导致哈希分布的随机性不足,进一步加剧了负载不均衡。
<u>供应商锁定问题</u>
RDMA生态系统存在严重的供应商锁定问题:
- 硬件绑定:现有RDMA库和工具链基本都与NVIDIA(原Mellanox)ConnectX网卡深度绑定。某些高级功能如IBGDA(GPU发起的RDMA,用于DeepEP等框架)只在特定硬件上可用。虽然Verbs API是标准化的,但不同厂商在驱动实现、性能调优、高级特性上存在显著差异。
- 生态系统封闭:NVIDIA通过ConnectX网卡、InfiniBand交换机、GPU、NCCL通信库形成了一个紧密耦合的生态系统。这套组合确实能提供最佳性能,但也意味着用户很难在不牺牲性能的情况下替换其中任何一个组件。
- 缺乏统一抽象:虽然libfabric等项目尝试提供跨平台的网络抽象层,但在实践中,针对特定硬件的优化仍然是获得最佳性能的必要条件。这使得应用程序要么牺牲可移植性追求性能,要么牺牲性能换取可移植性。
<u>内存注册机制</u>
RDMA要求用于网络传输的内存必须先进行"注册"——包括内存锁定、地址映射和密钥生成等步骤。这套机制源于RDMA对安全性和正确性的考量。
在大模型训练场景中,这些机制可能带来一定的管理复杂度。整个集群通常属于同一个训练任务,所有GPU之间需要频繁交换数据,细粒度的保护域隔离在这种场景下的价值有限。
实践中,系统通常采用批量注册与预分配的策略——在训练开始前一次性注册所有需要的内存,从而避免运行时的额外开销。这是一种在安全性和便利性之间的务实权衡。
03、未来方向
面对这些历史包袱,业界正在探索多种解决方案:
- Ultra Ethernet Consortium(UEC):由Meta、Microsoft、Oracle等公司发起,100多家企业参与的UEC于2025年发布了1.0规范。UEC并非要取代RDMA,而是重新定义RDMA在以太网上的实现方式——采用无序、无连接的通信架构,更好地适应现代数据中心环境。
- 新型拥塞控制:HPCC等算法通过交换机的实时遥测实现精确的速率控制,有望在不依赖PFC的情况下实现无损传输,从根本上消除PFC死锁风险。
- 软件定义RDMA:通过更灵活的软件层实现可编程的可靠性机制,更好地与云原生架构集成。
04、总结
RDMA的历史包袱,本质上是其HPC基因与大模型时代需求之间的矛盾。20年前为CPU主导、小规模集群设计的技术,如今需要支撑GPU主导、超大规模的AI训练基础设施。
这些包袱包括:为CPU设计的Verbs API、有序传输的过度保证、PFC带来的拥塞控制困境、ECMP在大象流面前的失效、供应商锁定问题,以及内存注册机制的性能开销。
好消息是,业界已经认识到这些问题,并在积极探索解决方案。Ultra Ethernet等新标准正在尝试重新定义RDMA的实现方式,使其更好地适应大模型时代的需求。但在这些新技术成熟之前,我们仍需在现有框架内小心翼翼地"负重前行"。
理解这些历史包袱,对于设计下一代AI网络基础设施至关重要。只有认清过去的局限,才能更好地构建未来。
05、参考资料
大规模AI训练网络
RDMA over Ethernet for Distributed AI Training at Meta Scale - Meta在SIGCOMM 2024发表的RoCE大规模分布式训练论文
Scaling LLM Training Using RDMA over Converged Ethernet - SC'25关于LLM训练网络扩展的研究
RDMA Point-to-Point Communication for LLM Systems - LLM系统中RDMA点对点通信的探索
集合通信与NCCL
Collective Communication for 100k+ GPUs - 10万+GPU集合通信研究
An Efficient, Reliable and Observable Collective Communication Library - 大规模GPU训练集群的集合通信库
Demystifying NCCL: An In-depth Analysis of GPU Communication Protocols - NCCL深度分析
拥塞控制
AI/ML Training Network Congestion Control for RDMA - AI训练网络拥塞控制
Rate-adaptive RDMA Congestion Control for AI Clusters - AI集群的自适应拥塞控制
Priority Flow Control: The Stop Light of the AI Networking Highway - PFC机制详解
Ultra Ethernet Consortium
Ultra Ethernet Consortium Launches Specification 1.0 - UEC 1.0规范发布
From InfiniBand to Ultra Ethernet: Why AI Networks Had to Rethink RDMA - 从InfiniBand到Ultra Ethernet的演进
RDMA编程与内存管理
RDMA Verbs API Documentation - NVIDIA RDMA Verbs API文档
Design Guidelines for High Performance RDMA Systems - 高性能RDMA系统设计指南
Pitfalls of InfiniBand with On-Demand Paging - ODP的性能陷阱研究
安全与多租户
Securing RDMA for High-Performance Datacenter Storage Systems - RDMA数据中心安全研究
Behind the Scenes: Securing OCI InfiniBand SuperClusters - Oracle云InfiniBand安全实践
历史与综述
RDMA: A Short History of Remote DMA Networking - RDMA历史回顾
Software Defined RDMA Networks for Large Scale AI Infrastructure - 软件定义RDMA网络
<u>往期推荐</u>
达坦科技始终致力于打造高性能AI+Cloud基础设施平台,积极推动AI应用的落地。达坦科技通过软硬件深度融合的方式,提供AI推理引擎和高性能网络,为AI应用提供弹性、便利、经济的基础设施服务,以此满足不同行业客户对AI+Cloud的需求。
公众号:达坦科技DatenLord
DatenLord官网:https://datenlord.github.io/zh-cn/
知乎账号:https://www.zhihu.com/org/da-tan-ke-ji
B站:https://space.bilibili.com/2017027518
邮箱:info@datenlord.com
如果您有兴趣加入达坦科技Rust前沿技术交流群、硬件敏捷开发和验证方法学讨论群或AI Infra 交流群,请添加小助手微信:DatenLord\_Tech
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。