跳到主要内容

InfiniBand 高性能互联

InfiniBand(IB)是专为 HPC 和 AI 训练集群设计的高速互联标准,由 IBTA(InfiniBand Trade Association)定义,目前由 NVIDIA/Mellanox 主导实现。其核心特性是原生 RDMA 支持、极低延迟和硬件天然无损传输,是大规模 GPU 集群节点间互联的首选技术。


代际规格演进

InfiniBand 每 3-4 年推出新一代,带宽大致翻倍。每端口速率以 Gbps(信令速率)标注,实际可用带宽约为信令速率的 80%(8b/10b 或 64b/66b 编码开销)。

代际发布年份每端口线速有效带宽(单向)代表 HCA/交换机典型部署
SDR200310 Gbps~1 GB/sConnectX早期 HPC
DDR200520 Gbps~2 GB/sConnectX早期 HPC
QDR200840 Gbps~4 GB/sConnectX-2HPC 集群
FDR201256 Gbps~6 GB/sConnectX-3HPC/深度学习早期
EDR2015100 Gbps~12.5 GB/sConnectX-4DGX-1(V100 时代)
HDR2019200 Gbps~25 GB/sConnectX-6DGX A100
NDR2022400 Gbps~50 GB/sConnectX-7DGX H100/H200
XDR2025800 Gbps~100 GB/sConnectX-8DGX B200
GDR~20271600 Gbps~200 GB/s下一代规划中

说明

  • HDR 及之前采用 NRZ 信令,NDR 开始采用 PAM4,单通道速率从 50 Gbps 提升至 100 Gbps。
  • 多端口聚合:高端交换机(如 Quantum-2)提供 64 个 NDR 端口,支持 fat-tree 全双工无阻塞网络。
  • XDR 实际上是 NDR 的升级版,采用同一 ConnectX 系列,每端口 2×400 Gbps 通道(2×SerDes bundle)实现 800 Gbps。

核心架构

子网结构与地址分配

InfiniBand 将网络划分为子网(Subnet),每个子网由一个 Subnet Manager(SM) 统一管理:

  • SM 运行在某台主机或专用交换机上,负责发现拓扑、分配 LID(Local Identifier,16 位本地地址)、计算路由表并下发到所有交换机。
  • 节点用 GUID(64 位全局唯一标识)标识,LID 只在子网内有效。
  • 跨子网通信需要通过 Router,使用 GID(128 位,基于 IPv6)寻址。

SM 的核心工作流程:

启动 -> 拓扑发现(SMP 协议,子网管理包)
-> LID 分配(每个端口分配唯一 LID)
-> 路由计算(通常为 fat-tree 线性转发表 LFT)
-> 下发路由(写入每个交换机的转发表)
-> 监控心跳(检测链路变化,触发重路由)

队列对(Queue Pair,QP)

所有 InfiniBand 通信都通过 QP 进行。每个 QP 由一个发送队列(SQ)和一个接收队列(RQ)组成:

QP 类型全称特点适用场景
RCReliable Connection面向连接,保证有序可靠投递,支持 RDMAMPI 点对点,NCCL P2P
UCUnreliable Connection面向连接,不保证可靠,支持部分 RDMA较少使用
UDUnreliable Datagram无连接,1:N 通信,不支持 RDMA组播,管理流量
XRCExtended RCRC 的扩展,多端共用一个 RQ,减少连接数大规模集群(10万+ 节点)

QP 状态机(典型生命周期):

Reset -> Init -> RTR (Ready to Receive) -> RTS (Ready to Send) -> SQE/Error -> Reset

工作请求(Work Request,WR)投入 SQ/RQ,完成后生成 完成队列元素(CQE) 写入 CQ。

完成队列(Completion Queue,CQ)

应用程序通过轮询(ibv_poll_cq)或事件通知(ibv_req_notify_cq + 等待事件文件描述符)获取 CQE:

  • 轮询模式:延迟最低,CPU 自旋等待,适合延迟敏感路径(NCCL 默认)。
  • 事件驱动模式:CPU 友好,适合低频通信或后台任务。

内存注册(Memory Registration)

RDMA 操作要求目标内存预先注册(pinned),以防止操作系统换页:

ibv_reg_mr(pd, buf, size, IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_REMOTE_READ | ...)
-> 返回 mr,包含 lkey(本地访问 key)和 rkey(远端访问 key)
  • lkey:本地 DMA 操作使用,验证本端 HCA 对该内存的访问权。
  • rkey:传给远端,远端通过 RDMA Read/Write 直接访问该内存区域时需要携带。
  • 注册操作本身有开销(OS 页表 pin + HCA 转换表更新),建议提前注册、复用内存池。

RDMA 传输模型

双边操作(Two-Sided)

发送端和接收端都需要主动参与,各自投入工作请求:

  • Send:发送端将消息推到接收端,接收端必须提前投入 Receive WR(准备接收缓冲区)。
  • Receive:接收端消费 Send 投递的数据,写入预先指定的缓冲区。
  • 两边都产生 CQE,两边都消耗 CPU 周期(投 WR 和收 CQE)。

适用场景:消息大小不确定、需要接收端参与流控的场景(如 MPI eager 消息)。

单边操作(One-Sided,Zero-Copy)

发起端直接读写远端内存,远端 CPU 无需参与:

操作语义谁产生 CQE
RDMA Write发起端将数据写入远端指定地址仅发起端(可选 Immediate 触发远端 CQE)
RDMA Read发起端从远端指定地址拉取数据仅发起端
RDMA Write with ImmediateWrite + 携带 32 位立即数,触发远端 Receive CQE发起端 + 远端

零拷贝路径:数据直接在 HCA 和目标内存之间 DMA,不经过 CPU 或 OS 内核。延迟极低,是 NCCL P2P 通信的底层机制。

Atomic 操作

在远端内存上执行原子读-改-写,适合分布式同步:

  • Compare-and-Swap(CAS):若远端值等于期望值,则替换为新值,返回旧值。
  • Fetch-and-Add(FAA):将远端值加上指定增量,返回旧值。

Atomic 操作以 64 位对齐的地址为粒度,硬件保证原子性(无需软件锁)。

延迟构成

端到端消息延迟可分解为:

总延迟 = 注入延迟 + 网络传播延迟 + 序列化延迟 + 目的端处理延迟

注入延迟(Injection Latency):
- 软件开销:应用调用 ibv_post_send 到 HCA 接收 WR(~100-300 ns)
- HCA 处理:WR 解析、内存访问、组包(~50-100 ns)

网络传播延迟(Propagation Latency):
- 链路延迟:光速传播,100m 光纤 ~500 ns
- 交换机转发:每跳 ~100-200 ns(NDR Quantum-2 交换机)

序列化延迟(Serialization Latency):
- 消息大小 / 链路带宽
- NDR 400 Gbps:1 KB 数据 ~20 ns,1 MB 数据 ~20 us

目的端处理延迟:
- HCA 收包、DMA 写内存、CQE 生成
- 应用轮询 CQ 到感知完成(~100-200 ns)

NDR MPI 软件层 ping-pong 延迟约 600 ns(含双端软件开销),硬件链路延迟约 100-200 ns


拥塞控制

InfiniBand 采用基于信用的流控(Credit-Based Flow Control)作为基础,辅以拥塞控制机制应对热点流量。

基于信用的流控

  • 每条 IB 链路维护信用计数器,接收端为每个虚通道(Virtual Lane,VL)分配信用。
  • 发送端在有足够信用时才发送数据包,避免接收端缓冲区溢出。
  • 信用基于链路层(L1),在相邻节点间逐跳运作,天然防止丢包。

这是 InfiniBand 与 RoCE 最根本的区别:IB 硬件天然无损,不依赖 PFC 等软件机制。

ECN(Explicit Congestion Notification)

当网络内部出现拥塞(交换机缓冲区超过门限),InfiniBand 使用 ECN 通知通信双方:

  • FECN(Forward ECN):拥塞点交换机在数据包头设置 FECN 位,通知接收端"上游链路拥塞"。
  • BECN(Backward ECN):接收端向发送端回送 BECN 标记,通知"降速"。

发送端收到 BECN 后执行速率限制,通常为乘性减(multiply decrease),随后按线性增(additive increase)恢复。

虚通道隔离(Virtual Lane,VL)

InfiniBand 支持最多 15 条数据 VL + 1 条管理 VL(VL15):

  • 不同流量类型(数据、管理、信号量)映射到不同 VL,避免头阻塞(Head-of-Line Blocking)。
  • 每个 VL 独立维护信用,优先级可配置(QoS 策略)。
  • SM 在路由计算时可以将不同流分配到不同 VL,实现流量隔离。

SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)

InfiniBand 独有的网内计算(In-Network Computing)能力:

  • AllReduce 等集合通信在交换机上完成部分归约,不需要数据集中到某个节点再分发。
  • 大规模 AllReduce 延迟从 O(N) 降至 O(log N)。
  • NDR 及更高代的 Quantum 交换机原生支持 SHARP,NCCL 可自动启用(NCCL_ALGO=NVLS 的 IB 版本)。

在 AI 集群中的典型部署

Fat-Tree 拓扑

AI 集群中最常见的 IB 网络拓扑为全双工 fat-tree(Clos 网络),具有以下特性:

  • 全双工无阻塞:核心层-汇聚层-接入层各层带宽对等,任意两节点间带宽不低于单链路速率。
  • 低直径:3 层 fat-tree 中,任意节点间最多 5 跳(叶节点 -> 接入交换机 -> 核心交换机 -> 接入交换机 -> 叶节点),延迟可预测。
  • 路由算法:ECMP(等价多路径)散列流量;OFED 支持自适应路由(AR)动态选择低负载路径。

典型规模配置(以 NDR 为例):

规模接入层交换机核心层交换机GPU 节点数每节点 GPU 数总 GPU 数
小集群8×40端口4×80端口32082560
中集群16×64端口32×64端口102488192
大集群32×64端口128×64端口4096832768

AI 训练集群中,InfiniBand 和 NVLink 承担不同层级的通信任务:

节点内(同一 DGX/服务器,8 GPU):
NVLink 4.0/5.0 — 带宽 900/1800 GB/s 每 GPU
角色:Tensor Parallelism AllReduce(延迟敏感)

节点间(跨服务器,同 rack 或跨 rack):
InfiniBand NDR/XDR — 带宽 50/100 GB/s 每端口
角色:Pipeline Parallelism P2P、Data Parallelism AllReduce、Expert Parallelism AllToAll

关键原则:TP AllReduce 的通信量最大且延迟最敏感,必须在 NVLink 层完成;PP 的 P2P 激活传输量较小,可以跨节点走 IB。

HDR 和 NDR 典型配置

DGX A100(HDR,200 Gbps)

  • 每节点 8×HDR 端口,通过 IB 直接连接接入交换机
  • 常见接入交换机:Quantum(HDR,40 端口)
  • 典型集群:512 节点 → 4096 GPU

DGX H100(NDR,400 Gbps)

  • 每节点 8×NDR 端口(ConnectX-7)
  • 接入交换机:Quantum-2(NDR,64 端口,SHARP v3 支持)
  • 典型集群:1024 节点 → 8192 GPU

性能特性

延迟参考数据

测试场景数据量延迟备注
硬件链路延迟(单跳)-~100-200 ns交换机转发延迟
RDMA Write(单边,软件到软件)4 B~700 nsNDR,MPI 实测
MPI ping-pong(RC Send/Recv)8 B~600 nsNDR,ib_send_lat
MPI ping-pong(RC Send/Recv)1 KB~650 nsNDR
MPI ping-pong(RC Send/Recv)1 MB~21 usNDR,带宽受限

带宽参考数据

测试场景数据量带宽备注
RDMA Write(单向峰值)1 MB+~48 GB/sNDR,ib_write_bw
MPI Allreduce(Ring,8 节点)1 GB~42 GB/s(算法带宽)NDR,NCCL nccl-tests
MPI Alltoall(8 节点)256 MB/rank~35 GB/sNDR,NCCL

线速利用率

NDR 理论单向带宽 = 400 Gbps × (1 - 64b/66b 编码开销) / 8 ≈ 48 GB/s

RDMA Write 大消息利用率可达 ~95%,与 NVLink 相比,IB 的协议开销更大(更多头部字段),但大消息下影响可忽略。

NCCL 与 IB 集成

NCCL(NVIDIA Collective Communications Library)对 IB 的利用路径:

  • 使用 RC QP + RDMA Write(NCCL P2P 通信)
  • AllReduce 默认走 Ring 算法,启用 SHARP 后可走 Tree 算法(延迟更低)
  • 推荐环境变量:NCCL_IB_HCA=mlx5_0,mlx5_1,...(指定使用的 HCA)

与 RoCE 的对比

维度InfiniBand NDRRoCEv2(200GbE)
延迟(小消息)~600 ns~1-2 us
峰值带宽(单端口)~50 GB/s(400 Gbps)~25 GB/s(200 Gbps)
无损保证硬件天然无损(信用流控)依赖 PFC + ECN 配置
网内计算SHARP(AllReduce 卸载)无原生支持
硬件成本高(专用 HCA + 交换机)低(复用以太网交换机)
大规模稳定性成熟,SM 统一管理PFC 死锁风险,配置复杂
生态NCCL、MPI、OpenUCX 深度支持NCCL 支持,部分功能受限
典型用户NVIDIA DGX 集群,国家超算Meta、阿里云、规模 <1000 GPU

详见 RoCE 专题文档