HiHuo
首页
博客
手册
工具
关于
首页
博客
手册
工具
关于

InfiniBand:跨机器的高速网络

上一篇讲了机器内部 GPU 之间怎么通信(NVLink 和 PCIe)。但大模型训练动不动就要几十上百张卡,一台机器最多 8 张,肯定要跨机器。

跨机器通信用什么?大部分人第一反应是以太网。但以太网的带宽和延迟,跑分布式训练完全不够用。

这篇讲 AI 集群里真正在用的高速网络:InfiniBand。


以太网为什么不够用

带宽对比

网络类型带宽
千兆以太网125 MB/s
万兆以太网(10GbE)1.25 GB/s
25GbE3.1 GB/s
100GbE12.5 GB/s
InfiniBand HDR25 GB/s
InfiniBand NDR50 GB/s

就算用 100G 以太网,带宽也只有 12.5 GB/s。

而 NVLink 4.0 是 450 GB/s。跨机器通信比机器内通信慢 30 多倍。

延迟对比

网络类型延迟
以太网(TCP/IP)50-100 微秒
RoCE(以太网 RDMA)2-5 微秒
InfiniBand0.5-1 微秒

以太网的协议栈太重(TCP/IP),每次通信都要经过操作系统内核,延迟高。


InfiniBand 是什么

InfiniBand 是一种高性能计算网络技术,最早用在超算领域,现在是 AI 训练集群的标配。

核心特点

  1. 高带宽:HDR 200Gbps,NDR 400Gbps
  2. 低延迟:亚微秒级
  3. RDMA:绕过 CPU 直接访问内存,效率极高

RDMA 是关键

RDMA(Remote Direct Memory Access)是 InfiniBand 的核心能力。

普通网络通信:

发送方内存 → CPU → 网卡 → 网络 → 网卡 → CPU → 接收方内存

RDMA:

发送方内存 → 网卡 → 网络 → 网卡 → 接收方内存

绕过了 CPU,数据直接从一台机器的内存传到另一台机器的内存。

好处:

  • 延迟低(不用走内核协议栈)
  • CPU 占用少(不用 CPU 搬数据)
  • 带宽利用率高

InfiniBand 的版本

InfiniBand 也有代际演进:

版本单端口带宽常见配置发布时间
QDR40 Gbps4x QDR2008
FDR56 Gbps4x FDR2011
EDR100 Gbps4x EDR2014
HDR200 Gbps4x HDR2018
NDR400 Gbps4x NDR2022

目前主流是 HDR(200Gbps),高端集群开始用 NDR(400Gbps)。

换算

  • HDR 200Gbps = 25 GB/s
  • NDR 400Gbps = 50 GB/s

InfiniBand vs 高速以太网

RoCE

RoCE(RDMA over Converged Ethernet)是在以太网上实现 RDMA 的技术。理论上可以获得接近 InfiniBand 的性能。

对比

特性InfiniBandRoCE(以太网)
带宽最高 400Gbps最高 400Gbps
延迟0.5-1 微秒2-5 微秒
拥塞控制成熟需要额外配置
成本高相对低
运维复杂度高较低

怎么选

  • 大规模训练集群:InfiniBand。性能最好,大厂都在用。
  • 中小规模或预算有限:RoCE 以太网。性能稍差但成本低。
  • 纯推理集群:普通高速以太网也能接受。推理对网络要求没训练那么高。

AI 集群的网络架构

大规模 AI 集群的网络通常是这样的:

计算网络(后端网络)

专门用于 GPU 之间的通信,跑训练的梯度同步。

  • InfiniBand 或 RoCE
  • 无阻塞交换
  • 大带宽、低延迟

存储网络

连接分布式存储,读训练数据、存 checkpoint。

  • 通常也是高速以太网或 InfiniBand
  • 带宽要求高(训练数据量大)

管理网络

SSH、监控、日志这些。

  • 普通千兆/万兆以太网
  • 可靠性要求高

拓扑结构

大规模集群通常用 Fat-Tree 或 Dragonfly 拓扑:

          Spine 交换机
        ╱   |   |   ╲
      Leaf  Leaf Leaf Leaf
      /|\   /|\  /|\   /|\
     服务器 服务器 服务器 ...

核心目标:任意两台机器之间的带宽尽量一致(无阻塞)。


GPUDirect RDMA

NVIDIA 做了一个优化叫 GPUDirect RDMA,让网卡可以直接访问 GPU 显存。

普通 RDMA:

GPU 显存 → CPU 内存 → 网卡 → 网络 → 网卡 → CPU 内存 → GPU 显存

GPUDirect RDMA:

GPU 显存 → 网卡 → 网络 → 网卡 → GPU 显存

省了两次 CPU 内存拷贝,延迟更低、带宽利用率更高。

要求

  • NVIDIA GPU + CUDA
  • 支持 GPUDirect 的网卡(如 Mellanox ConnectX 系列)
  • 正确的 PCIe 拓扑(GPU 和网卡最好在同一个 PCIe Switch 下)

常见网卡

AI 集群常用的高速网卡:

型号类型带宽厂商
ConnectX-6InfiniBand HDR200 GbpsNVIDIA(Mellanox)
ConnectX-7InfiniBand NDR400 GbpsNVIDIA
ConnectX-6 Dx以太网100/200 GbpsNVIDIA
E810以太网100 GbpsIntel

NVIDIA 收购了 Mellanox,所以现在高端网卡也是 NVIDIA 家的。从 GPU 到网卡到交换机,NVIDIA 全包了。


实际部署注意事项

网卡和 GPU 的亲和性

GPUDirect RDMA 要求网卡和 GPU 在 PCIe 拓扑上尽量近。如果隔太远,性能会下降。

# 查看 PCIe 拓扑
$ nvidia-smi topo -m

网络带宽要和 GPU 匹配

8 卡 H100 机器,机器内 NVLink 带宽 900 GB/s。如果出口只有一张 200Gbps 网卡(25 GB/s),跨机器通信会成为瓶颈。

大厂的做法是每台机器配多张网卡,比如 8 张 400G 网卡,对应 8 张 GPU。

交换机不能是瓶颈

Spine-Leaf 架构里,Spine 交换机的背板带宽要足够大,否则多对多通信时会拥塞。

拥塞控制很重要

大规模训练时,所有机器同时通信,容易出现网络拥塞。InfiniBand 有成熟的拥塞控制机制,RoCE 需要额外配置(ECN、PFC 等)。


云上的选择

AWS

  • P4d/P5 实例:用 EFA(Elastic Fabric Adapter),类似 RDMA
  • 带宽:P4d 400 Gbps,P5 3200 Gbps

阿里云

  • GPU 集群:支持 eRDMA
  • 高端机型有 InfiniBand 或 RoCE 选项

Azure

  • NDv4/NDv5:InfiniBand HDR/NDR

选云服务器跑分布式训练时,一定要看网络规格,不是所有 GPU 实例都有高速网络。


自建还是上云

自建集群

优点:

  • 网络架构可以按需定制
  • 长期成本可能更低
  • 数据不用出公司

缺点:

  • 前期投入大
  • 需要专业运维团队
  • InfiniBand 运维有门槛

云服务

优点:

  • 按需使用,灵活
  • 不用操心硬件
  • 能快速扩容

缺点:

  • 长期成本高
  • 网络性能可能不如自建
  • 高端机型经常缺货

建议

  • 短期/探索阶段:用云
  • 长期/大规模:自建划算
  • 没有专业运维团队:用云

小结

跨机器 GPU 通信的关键点:

  • 以太网不够用:带宽和延迟都不行
  • InfiniBand 是主流:高带宽、低延迟、RDMA
  • RoCE 是替代方案:性能稍差但成本低
  • GPUDirect RDMA:GPU 显存直接和网卡通信,效率更高

选型建议:

  • 大规模训练:InfiniBand
  • 中小规模:RoCE 以太网
  • 纯推理:普通高速以太网

第一部分(GPU 硬件)到这里就讲完了。下一部分讲训练数据。