读上一站的 PD 分离文章时有个细节值得回味:prefill 与 decode 两个 GPU 池之间,每批次 KV cache 要跨机搬运约 10 GB——这个数字的前提是网络真的搬得动。搬得动的底气来自一个叫 RDMA(Remote Direct Memory Access,远程直接内存访问)的技术。它被称为 AI 集群的「隐形基础设施」:训练大模型时数千块 GPU 之间持续交换数据,推理集群里 KV cache 跨机传输、分布式存储、数据库复制,走的都是这条路。本文讲清 RDMA 是什么、它凭什么快、三条传输路线怎么选,以及它和 AI 工作负载的共生关系。读完你会带走三个词:内核旁路、零拷贝、无损网络——RDMA 的全部魔法与全部运维难点,都在这十二个字里。

一、先看病灶:传统网络里 CPU 是中间人
要理解 RDMA,先要理解传统 TCP/IP 网络在做一件多么「笨重」的事。A 机器要给 B 机器发一段数据,传统路径是:发送方把数据从应用内存拷贝到内核缓冲区,内核把数据拆包、逐层封装 TCP/IP 头,网卡再拷贝出去;接收方网卡收包中断 CPU,内核逐层解包、校验,再从内核缓冲区拷贝到应用内存。这一路,操作系统是数据的中转站:多次内存拷贝 + 协议栈处理 + 中断,每一环都消耗 CPU 时间、叠加延迟。
平时无妨——网页、API 调用的延迟大头不在这里。但 AI 集群受不了:训练时几千块 GPU 需要高频交换梯度与参数,推理集群要在节点间搬运 GB 级的 KV cache,如果数据都要卡在操作系统队列里排队,昂贵的 GPU 就会闲着等网络——用思科官方资料的表述,当网络传输延迟、包处理开销或内存拷贝延迟直接构成应用瓶颈时,RDMA 就是那个正确的选择。一亿参数级别的模型尚可将就,千亿参数模型的并行训练把「网卡每秒能搬多少、搬的时候 CPU 花了多少」变成了第一性的成本问题。把中间人的成本再拆细一点:协议栈处理要消耗 CPU 核,内存拷贝既占 CPU 又挤占内存带宽,中断还会打断缓存里正在热跑的计算数据——对一台整机就是「网络越忙,算力越少」的隐形税。
二、RDMA 的答案:三大机制拆掉中间人
RDMA 的思路是把「远端的内存」当成「本地内存」来用:允许一台机器直接读写另一台机器的内存,全程不经双方操作系统与处理器参与。它的名字里那个「直接」二字就是全部卖点——Direct 的对象是内存,跳过的是一切中间层。拆开是三个机制。
内核旁路(kernel bypass):应用程序在用户态直接与网卡通信,数据包不走内核协议栈、不产生软件中断——内核这条「中间人」路径被整体绕开。零拷贝(zero-copy):数据从源机器的内存地址直接经网卡送到目标机器的内存地址,没有内核缓冲区的中转拷贝。内存注册:应用预先告知网卡哪些内存区域可用,硬件锁定这些区域,保证远端直接写入时的安全与速度——这一步常被忽略却是安全的基石:远端凭什么能写你的内存?答案是只有注册过的区域、且按连接授权的远端才能写,未注册内存对网卡不可见。
三个机制叠加的效果,是把传输路径从「应用内存 → 内核拷贝 → 协议栈 → 网卡 → 网络 → 网卡 → 协议栈 → 内核拷贝 → 应用内存」压缩成「应用内存 → 网卡 → 网络 → 网卡 → 应用内存」。收益的量级:延迟降到个位数微秒级,CPU 负载趋近于零,可支撑 400G/800G 的线速传输。CPU 不再为搬运数据买单,就可以把全部算力留给真正值钱的计算。值得补充的是 RDMA 的两类操作语义也随简化而变化:除了传统的「发-收」消息对,它还提供单边的读/写原语——发起方直接读写对端注册内存,对端 CPU 全程不知情。这个「单边」特性正是 KV cache 搬运、分布式锁表这类场景的最爱:数据通路上的延迟与开销压到最低,连对端的打扰都省了。
三、三条传输路线:InfiniBand、RoCE 与 iWARP
RDMA 需要网卡的硬件支持,而「RDMA 数据跑在什么网络上」有三条主流路线,各有性格。InfiniBand 是为超算定制的专用网络:从线缆、交换机到协议原生支持 RDMA,延迟与无损性最好,AI 训练集群的高端首选;代价是独立的网络设施与生态。RoCEv2(RDMA over Converged Ethernet)走的是「和平演变」路线:把 RDMA 数据封装进标准 UDP/IP 包,用企业现有的以太网交换机就能跨子网路由——代价是要把以太网配置成「无损网络」(PFC 优先级流控 + ECN 拥塞通知),否则丢包会毁掉 RDMA 的性能模型。iWARP 则直接把 RDMA 建在 TCP/IP 上,部署最省事,但背着 TCP 的协议开销,延迟略逊。
选型口诀:新建专用 AI 集群、追求极致性能选 InfiniBand;已有以太网资产、要平滑演进选 RoCEv2(但要配好无损网络);存量 TCP 环境小范围使用可选 iWARP。三者之上还有一层对 AI 场景至关重要的增强——GPUDirect RDMA:让网卡直接在两台机器的 GPU 显存之间传输数据,连主机内存都不经过——KV cache 跨节点搬运、训练集合通信加速,最终优化的就是这条「GPU 到 GPU」的直通路径。
「无损网络」这个词值得单独展开,因为它是 RoCE 路线成败的关键。RDMA 的性能模型建立在「包不丢」之上——丢包重传对微秒级延迟是灾难。但标准以太网在拥塞时就是会丢包,于是 RoCE 网络要做两件事:PFC(优先级流控)让上游交换机在缓冲区将满时按下暂停帧、从源头停止发包(不丢,只等);ECN(显式拥塞通知)在拥塞萌芽时给包打标记,让发送端提前降速。这两件配置让以太网「假装」成无损网络——配置得当事半功倍,配置不当则可能引入 PFC 死锁(互相等待放行)等新型故障。这也是为什么 RDMA 的运维口碑两极分化:InfiniBand 开箱即用但要新网络,RoCE 复用旧网络但吃配置功力。
四、工程清单与边界
RDMA 不是「插上就快」的银弹,落地有几条实打实的注意事项。无损网络是前提:RoCE 场景下 PFC/ECN 配置不当,拥塞丢包会让性能反而不如 TCP——RDMA 把复杂度从协议栈转移到了网络配置上。内存注册有成本:预注册的内存区域被硬件锁定,注册太多会挤压系统可用内存,要在缓存池设计里统一规划。运维复杂度上升:绕过内核意味着绕过内核成熟的监控、限流与防火墙体系,故障排查需要专门的工具链。适用性有边界:RDMA 解决的是「大块数据的高频搬运」,普通业务接口的延迟大头在业务逻辑,套 RDMA 是杀鸡用牛刀。
把「值不值」算成一笔具体的账,选择就清晰了。以本站 PD 分离一文引用过的测算为例:Llama 70B 级模型在 8k 上下文、batch 8 的情况下,每个批次的 KV cache 约 10 GB——传统 25G 以太网传完要数秒,GPU 池之间的延迟预算根本装不下;万兆网更是只能覆盖 2k 以下的短上下文。这笔账说明 RDMA 在 AI 集群里不是「优化项」而是「准入项」:没有微秒级、GB 级每秒的网络,KV cache 分离类架构在物理上就不成立。顺带一提,训练侧的集合通信库(如 NCCL)在高带宽场景同样会自动选用 RDMA 传输——同一套技术底座,同时服务于训练与推理两条线。
判断标准可以收敛成一句话:当「数据搬运本身」成为瓶颈——GPU 在等数据、存储在等网络、副本同步在等带宽——RDMA 才进入候选清单。这也是为什么它的名字总与 AI 集群、超算、分布式存储一起出现:这些场景的共同点是「搬的数据又大又频繁,且下游算力贵到等不起」。回到本站的语境做一个收尾对照:PD 分离把「KV cache 跨机搬运」变成了推理架构的一等公民,搬运通道的延迟与带宽直接写进 TTFT 的预算;训练侧的集合通信(几百上千卡同步梯度)更是把网络当作「另一个计算资源」来调度。两边的共同结论是:AI 基础设施的竞争,已经从「堆多少卡」延伸到「卡与卡之间怎么连」——而 RDMA 就是那条连接的底座技术。
结语
RDMA 的故事与 PD 分离一脉相承:当 AI 把「搬数据」从配角推成主角,为「人机交互」设计的传统网络栈就成了瓶颈,于是产业界把数据通路一路铲平——绕过内核、免掉拷贝、直通显存。理解了这一点,再看 AI 集群里那些昂贵的 InfiniBand 线缆与无损以太网配置,就知道它们买的不是「快一点的网络」,而是让每一块 GPU 满负荷运转的权利。下一站无论是集合通信优化还是 KV cache 分层,底座都是这条内存直通车。用一句话给本文收束:RDMA 之于 AI 集群,就像直接内存访问之于单机——当年 DMA 把 CPU 从搬运中解放出来换来了计算繁盛,今天的 RDMA 正在做同一件事,只是尺度换成了数据中心。
参考资料
- What is Remote Direct Memory Access (RDMA)?(Cisco)——三大机制与适用场景的官方定义
- RDMA and Networking(llm-d 文档)——AI 推理基础设施视角的 RDMA 能力
- GPU Cluster Networking: InfiniBand vs RoCE(vCluster)——两条传输路线的对比选型
读者留言
COMMENTS 暂无还没有留言,来说第一句?