芯片开发学习笔记·十五——RDMA

发布时间:2026/5/19 20:28:04

芯片开发学习笔记·十五——RDMA RDMA 的定义与原理什么是 RDMARDMARemote Direct Memory Access远程直接内存访问是一种网络技术允许一台计算机直接读写另一台计算机的内存绕过操作系统内核和 CPU 的介入实现极低延迟、高带宽的数据传输。核心思想传统网络通信TCP/IP的数据路径应用层 → 内核空间系统调用→ 协议栈TCP/IP→ 网卡驱动 → 网卡 → 网络每一步都需要 CPU 参与并涉及多次内存拷贝。RDMA 的数据路径应用层 → RDMA 网卡RNIC→ 网络 直达对端内存数据完全在用户态发起由硬件完成CPU 几乎不参与。关键特性特性说明零拷贝Zero-Copy数据直接在应用内存与网络之间传输无需在内核/用户态之间复制内核旁路Kernel Bypass数据路径完全绕过操作系统内核消除系统调用开销CPU Offload数据传输由 RDMA 网卡RNIC硬件完成CPU 只负责控制路径低延迟端到端延迟可低至1~5 微秒传统 TCP 通常 100 微秒高带宽单链路可达100 Gbps ~ 400 Gbps且几乎不消耗 CPU工作原理详解1. 内存注册Memory Registration应用程序在使用 RDMA 前必须将内存区域注册到 RDMA 网卡网卡会获取该内存的物理地址映射和访问密钥rkey/lkey确保数据可以被硬件直接访问。2. 队列对Queue Pair, QPRDMA 通信基于QPQueue Pair模型每个 QP 包含发送队列Send Queue, SQ存放发送请求Work Request接收队列Receive Queue, RQ存放接收请求完成队列Completion Queue, CQ通知应用操作完成应用把 WR工作请求投递到 QP网卡自主完成数据搬运。3. 三种核心操作┌─────────────────────────────────────────────────────┐ │ SEND / RECV 双边操作双方 CPU 均参与投递/接收 │ │ WRITE 单边写远端 CPU 无感知 │ │ READ 单边读远端 CPU 无感知 │ └─────────────────────────────────────────────────────┘SEND/RECV类似传统消息传递接收方需预先 Post Receive。WRITE发起方直接把数据写入远端内存对端 CPU 无需参与。READ发起方直接从远端内存读取数据对端 CPU 无需参与。单边操作WRITE/READ是 RDMA 最高效的模式。三大主流实现技术全称特点InfiniBandIB—专用网络性能最强延迟最低造价高RoCERDMA over Converged Ethernet基于以太网需无损网络PFC/ECNRoCEv2 基于 UDP/IPiWARPInternet Wide Area RDMA Protocol基于 TCP/IP可跨广域网性能略低典型应用场景高性能计算HPCMPI 并行计算节点间通信分布式存储Ceph、Lustre、NVMe-oFAI 训练集群大模型训练中 GPU 间梯度同步如 NCCL over RDMA数据库与内存计算低延迟 KV 存储、内存数据库金融交易系统超低延迟行情与交易系统参考资料【RDMA】技术详解一RDMA概述-CSDN博客

相关新闻