news 2026/4/26 8:24:53

IB、RocE、RDMA、TCP/IP:AI Scale-Out的基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IB、RocE、RDMA、TCP/IP:AI Scale-Out的基础

一、背景:分布式系统与Scale-Out 架构

在讲解 Scale-Out(横向扩展)之前,先介绍一下分布式系统的概念。

当计算机系统发展成熟后,单一系统往往面临单点故障和性能瓶颈的问题。为解决这些问题,出现了两个主要发展方向:

一个方向是发展双控系统。 常见的是两个系统共享存储资源,工作在AA模式(Active-Active,主主模式) 或 AP模式(Active-Passive,主备模式)。以集中式双控存储 SAN 为例,存储的两个控制器通过 SAS 双端口 可访问同一组硬盘,故障时可在控制器间无缝切换。硬盘层面通过 RAID 技术 避免单点故障,从而实现端到端的高可用性。这种方式对硬件设计要求高,需考虑共享内存、SAS 双端口等定制化设计,因此成本较高。

另一个方向是发展分布式系统,如云计算、大数据 Hadoop、分布式文件系统 Lustre、分布式存储 Ceph 等。其主要特点是系统之间通过网络互联,节点可采用标准服务器硬件,无需定制。通过协议与软件,在不可靠的硬件之上构建可靠、可扩展的系统,是分布式系统的核心理念。因此硬件成本相对较低,但软件系统复杂度显著增加。

这种通过增加节点来扩展系统能力的方式,即为 Scale-Out(横向扩展)。

早期分布式系统多基于以太网上的 TCP/IP 协议 进行通信,节点间通信效率不高。因此,在一些非必须使用 TCP/IP 的场景中,通信协议逐渐转向 RDMA,其底层支持两种主要技术:InfiniBand 和 RoCEv2(基于增强型以太网)。

图1 从单一系统到分布式系统

二、InfiniBand 标准的起源

笔者最初接触 InfiniBand 是通过 Mellanox 公司,曾以为它是 Mellanox 私有的协议,后来查阅资料才知 InfiniBand(简称IB)是由标准组织制定的开放协议。

InfiniBand 起源于 1999 年,旨在解决服务器内部 PCIe 总线与外部网络(如千兆以太网)之间的性能瓶颈,其愿景是统一内部 I/O 与外部网络通信。

该标准由 InfiniBand Trade Association(IBTA) 维护,官网为https://www.infinibandta.org/。

IBTA 由以下两个早期 I/O 标准合并而成:

- 下一代 I/O(NGIO):由 Intel、Sun、Dell 等公司主导。

- 未来 I/O(Future I/O):由 IBM、HP、康柏(Compaq)等公司主导。

下图展示了当前 IBTA 的主要成员。值得注意的是,NVIDIA 于 2020 年以 69 亿美元收购了 Mellanox,这一布局显著强化了其在高性能网络与 AI 基础设施领域的地位。

图2 IBTA 组织成员

InfiniBand 最初目标宏大,希望同时取代服务器内部的板级总线(如 PCI)和外部网络(如以太网),用统一互联技术构建数据中心。然而,PCIe 和基于以太网的 TCP/IP 协议已建立强大生态,难以全面替代。因此,IB 最初的突破点选择了对网络性能要求极高的 高性能计算(HPC) 领域。

Mellanox 是早期将 IB 商业化并推向 HPC 市场的关键推动者。该公司成立于 1999 年,2001–2003 年推出了全球首批 InfiniBand 主机通道适配器(HCA)和交换芯片。首个重要落地系统是美国能源部的 ASCI Q 超级计算机(2003 年于洛斯阿拉莫斯国家实验室上线),该系统使用 Mellanox 的 InfiniBand 技术连接上万个 Alpha 处理器节点。

如今,InfiniBand 已不仅限于 HPC,更广泛用于 AI 大规模训练、云计算、云存储 等场景。例如存储领域的 NVMe over Fabric(NoF) 协议中的“Fabric”常指基于 InfiniBand 或RoCE的 RDMA 网络。

三、RDMA 是什么?

RDMA(Remote Direct Memory Access,远程直接内存访问) 是 InfiniBand 协议栈顶层的软件接口,为应用程序提供 verbs 调用接口,实现高效的数据传输。

在介绍 RDMA 之前,先理解 DMA(Direct Memory Access,直接内存访问) 的概念。

图3 DMA 操作示意

如图3所示,传统的数据操作需经过 CPU 读写,这会占用 CPU 资源。对于网络、存储这类数据量大的 I/O 设备,若所有数据都经 CPU 搬运,会导致 CPU 忙于数据传输而无法执行计算任务。

因此,大多数 PCIe I/O 设备(如网卡)内置 DMA 引擎。在图3示例中,网卡内部的 DMA 引擎在 CPU 驱动控制下,自动将数据从网卡缓冲区搬运到系统内存的指定位置。图中浅蓝色粗箭头表示控制通道,绿色粗箭头表示数据通道。

CPU 仅需通过驱动程序控制网卡,准备 DMA 描述符(如指定 RX/TX Ring 在内存中的地址),后续的数据收发则由 DMA 引擎自动完成。控制命令的数据量很小,与数据传输相比可忽略不计。

图3除了呈现DMA之外,左下角也同时呈现了网络数据传输与Linux内核TCP/IP协议的内存管理的关系,左下角的三个黄色框分别表示:

1. 用户态缓冲区:应用程序通过 socket 调用(如 send/recv)使用的内存地址。

2. 内核态缓冲区(sk_buff):Linux 内核 TCP/IP 协议栈使用的缓冲区。

3. 网卡 DMA 缓冲区(RX/TX Ring):驱动申请并提供给 DMA 引擎直接访问的内存区域。

数据在用户态、内核态和网卡缓冲区之间往往需要多次拷贝,这也是 TCP/IP 协议效率较低 的原因之一。Linux 内核虽持续优化(如零拷贝技术),但完全消除拷贝仍需解决内存管理等多重挑战。具体做到什么程度,需要查看对应的Linux内核与网络驱动程序的实现。

RDMA 将 DMA 思想扩展到跨系统通信。两台主机通过网络传输数据时,CPU 仅需下发控制命令,实际数据传输由网卡上的 RDMA 引擎 自动完成(图4、图5中浅蓝色为控制流,绿色为数据流)。

目前支持 RDMA 的网卡仍为 PCIe 设备,数据搬运通过 PCIe 总线进行。在现代计算机体系中,内存地址与 PCIe 映射地址统一编址,因此 RDMA 的源地址和目的地址既可以是系统内存,也可以是 PCIe 设备内存(如 GPU 显存)。

图4展示了两系统内存间的 RDMA 传输,图5展示了两个 GPU 显存间的 RDMA 传输。

值得强调的是,InfiniBand 原生的 RDMA 可实现端到端的零拷贝。应用程序的 send/recv 缓冲区可直接作为 RDMA 操作的缓冲区,无需经过内核协议栈和多层缓冲区拷贝,从而大幅提升效率。

图4 系统内存间的 RDMA 传输

图5 GPU 显存间的 RDMA 传输

四、InfiniBand、RoCE 及 RDMA

随着 InfiniBand 在 HPC 领域的成功,其应用逐渐扩展至 AI 大规模训练等领域,RDMA 的高效性也得到广泛认可。

IB 协议栈采用分层设计,其上层的 RDMA 协议也可由其他底层协议承载,由此诞生了 RoCE(RDMA over Converged Ethernet),即基于增强以太网的 RDMA 实现。

协议栈对比如图6所示:

- 黄色部分为 IB 与 RoCE 共同支持的 RDMA 上层协议。

- 下方分别为 IB 原生协议栈和 RoCEv2(基于 UDP/IP 的增强以太网协议栈)。

图6 IB 与 RoCE 协议栈对比

图7概括了 IB 的核心技术优势,图8对比了 IB 与 RoCE 的主要区别。

总体而言:

- InfiniBand 是原生一体化的协议栈,提供最优的 RDMA 实现,具备低延迟、高可控性和端到端拥塞控制等优势。

- RoCEv2 是在以太网上实现 RDMA 的次优方案,其通过 PFC/ECN 实现无损传输,使用 UDP 简化协议处理,但延迟和可控性略逊于 IB。其优势在于基于普及的以太网硬件,成本低、组网灵活。然而,RoCE 对无损网络设计要求高,部署和维护复杂度不低,对运维团队提出较大挑战。

图7 IB 核心技术优势(图片来源:千问)

图8 IB 与 RoCE 总体对比(图片来源:千问)

小结

在 AI Scale-Out 架构中,RDMA 已成为提升节点间通信效率的关键技术。InfiniBand 以其原生一体化设计提供最优性能,尤其适用于超算与大规模AI训练;RoCEv2 则凭借以太网生态优势,在企业云与存储网络中广泛部署。选择时需综合考虑性能、成本、运维复杂度与生态兼容性。随着 AI 与云计算的深度融合,高效、可扩展的网络互联技术将持续演进,支撑下一代分布式智能系统的发展。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 7:16:25

基于单片机的远程烟雾报警系统

2 系统总体方案设计 通过上一章的火灾报警器的研究确定了设计火灾报警器的必要性,本章是火灾报警器的总体方案设计,确定了设计火灾报警器的硬件方案。 2.1 设计要求 熟悉51单片机的开发环境,用C语言编写程序; 能够自主设计基于单片机的最小系…

作者头像 李华
网站建设 2026/4/17 1:10:03

LCD1602字符显示原理:一文说清其内部结构与工作方式

LCD1602字符显示原理:从硬件到代码,彻底搞懂它的底层逻辑在嵌入式开发的早期阶段,你有没有遇到过这样的场景?MCU已经跑起来了,传感器数据也读到了,结果一到“把温度显示出来”这一步就卡住了——不是屏幕全…

作者头像 李华
网站建设 2026/4/25 16:15:30

无需大量算力!GPT-SoVITS轻量级训练方案出炉

无需大量算力!GPT-SoVITS轻量级训练方案出炉 在虚拟主播直播间里,一个声音与真人几乎无异的AI正在流畅播报商品信息;而在另一间康复中心,一位因疾病失去发声能力的患者正通过一段病前录音重建自己的“声音”——这一切背后&#x…

作者头像 李华
网站建设 2026/4/25 23:11:05

vue3中使用echarts实现3D饼图(组件封装)

前言 之前那篇文章已经实现3D饼图效果&#xff0c;这次只是在其基础上进行了简单的组件封装。详情请看vue3中用echarts达到3D饼图的实现 效果演示 添加无数据时占位盒子。&#xff08;自行根据ui设计更换样式&#xff09; 封装组件 Pie3D.vue组件 <template><divv-i…

作者头像 李华
网站建设 2026/4/25 11:08:26

基于单片机粮仓温湿度检测控制系统设计

一、系统总体设计方案 本粮仓温湿度检测控制系统以单片机为核心&#xff0c;搭配温湿度传感器、数据存储模块、报警模块及通风除湿执行模块&#xff0c;构建 “检测 - 分析 - 控制 - 反馈” 的闭环系统&#xff0c;旨在实时监控粮仓内温湿度变化&#xff0c;预防粮食霉变、虫害…

作者头像 李华
网站建设 2026/4/25 3:18:44

在学习SQL注入或XSS这类具体漏洞时,如何设计一个高效的“理论+实践”学习循环?

建立高效的“理论实践”循环&#xff0c;正是能否真正掌握SQL注入或XSS这类Web安全核心漏洞的分水岭。下面这个框架&#xff0c;希望能帮助您将知识转化为真实的攻防能力。学习阶段核心目标关键任务/方法推荐工具/环境① 靶场环境搭建​准备好一个安全、隔离的实验平台配置集成…

作者头像 李华