12. 大模型训练的基础设施要求:InfiniBand 和 NVLink 各起什么作用?

整理大模型训练基础设施中 InfiniBand 与 NVLink 的作用和区别。

简单回答

NVLink 是 NVIDIA GPU 之间的节点内高速互联,带宽高(A100 节点双向可达 600 GB/s),是张量并行这类需要高频、高带宽通信的并行策略的必要条件。InfiniBand 是跨节点的高速网络,带宽比 NVLink 低一到两个数量级,主要承载数据并行的梯度同步(AllReduce)和流水线并行的 Activation 传递。两者分工明确:节点内高带宽靠 NVLink,跨节点高带宽靠 InfiniBand,共同构成大规模训练集群的通信基础设施。

详细解答

NVLink:节点内高速互联

NVLink 是 NVIDIA 专为 GPU 间通信设计的高速总线,解决的问题是 PCIe 带宽不足的问题。

PCIe 4.0 的带宽约是 32 GB/s(双向 64 GB/s),对于大模型训练中张量并行的通信需求来说远远不够。A100 SXM 配置的节点,8 张 GPU 通过 NVLink 3.0 互联,每张 GPU 的 NVLink 双向总带宽达到 600 GB/s(12 条 NVLink 链路 × 每条双向 50 GB/s)。H100 的 NVLink 4.0 进一步升级到了 900 GB/s。

NVLink 还支持 GPU Direct,让 GPU 可以直接读写其他 GPU 的显存,不需要经过 CPU 中转,大幅降低延迟。

在实际训练中,NVLink 主要支撑节点内的:

  • 张量并行的 AllReduce/AllGather:每层的 Activation 通信,频率极高,带宽需求大
  • ZeRO/FSDP 的节点内通信:分片参数的聚合和分发
  • NVLink 在多 GPU P2P 数据传输中的加速

由于 NVLink 只连接节点内的 GPU,张量并行通常限制在节点内(比如 TP=8 对应 8 卡节点),跨节点做张量并行效率极差。

InfiniBand:跨节点高速网络

InfiniBand 是一种高性能网络技术,专为低延迟、高带宽的 HPC(高性能计算)场景设计,广泛用于大型 GPU 集群的节点间通信。

常见规格:

  • InfiniBand HDR:200 Gbps ≈ 25 GB/s(单端口,双向约 50 GB/s)
  • InfiniBand NDR:400 Gbps ≈ 50 GB/s(单端口)
  • 多端口聚合:一台服务器可能有 8 个 InfiniBand 端口,聚合带宽可达 400 GB/s(HDR)

相比普通以太网(10~100 Gbps),InfiniBand 的延迟极低(微秒级,以太网是毫秒级),这对于分布式训练中的大量小消息(比如 NCCL 的 AllReduce 控制消息)很重要。

InfiniBand 主要承载:

  • 数据并行的梯度 AllReduce(大量数据,但对延迟容忍度相对高,因为可以和计算重叠)
  • 流水线并行的 Activation 传递(消息大小中等,频率和流水线 micro-batch 数量相关)
  • ZeRO-3 跨节点的 AllGather(参数分片的跨节点聚合)

RDMA(Remote Direct Memory Access)是 InfiniBand 的关键特性,允许直接访问远程主机的内存,不需要 CPU 介入,大幅降低延迟和 CPU 开销。NCCL 库在 InfiniBand 集群上默认利用 RDMA 加速。

两者的协同工作

一个典型的 A100 训练集群通信架构:

[节点 1: 8× A100]                [节点 2: 8× A100]
 GPU0 ─── NVLink ─── GPU7         GPU0 ─── NVLink ─── GPU7
       (600 GB/s)                       (600 GB/s)
           │                                 │
      InfiniBand HDR Switch ─────────────────┘
           (200 Gbps per port)

节点内的张量并行通信走 NVLink(高带宽保证),节点间的数据并行和流水线并行走 InfiniBand(相对低带宽但足够)。

没有 InfiniBand 能训吗

可以,但效率会显著下降。很多团队用高速以太网(100GbE 甚至 400GbE)来替代 InfiniBand,成本更低,但带宽和延迟不如 InfiniBand。对于数据并行(梯度 AllReduce 可以和计算重叠,延迟容忍度高),以太网影响相对小;对于需要低延迟通信的流水线并行,影响更大。

云服务商(AWS、GCP、Azure)的 GPU 实例通常提供 RDMA 加速的网络(EFA on AWS、RDMA on GCP),性能接近 InfiniBand,但在大规模集群(几千张 GPU)上的稳定性和延迟还是不如专用 InfiniBand 集群。

存储和 I/O 基础设施

除了网络,存储也是大模型训练基础设施的重要组成部分。

高性能并行文件系统(Lustre、GPFS)用于存储训练数据和 checkpoint。大模型 checkpoint 可能几百 GB,频繁读写对存储 I/O 压力很大,需要并行文件系统来分摊带宽。

数据预处理和缓存:训练数据通常提前 tokenize 并序列化为二进制格式(MMap 格式),训练时内存映射读取,避免实时 tokenize 的 CPU 开销。大规模训练时,数据 IO 经常在 GPU 很快算完等数据,需要 DataLoader 的 worker 数量设置足够大。

面试时可以这样答

NVLink 和 InfiniBand 分工不同,服务于不同距离的通信。

NVLink 是节点内 GPU 之间的高速总线,A100 节点可以达到 600 GB/s 的双向带宽,比 PCIe 快 10 倍以上。它主要支撑张量并行——每层的 AllReduce 频率极高,没有 NVLink 带宽根本跑不动。这也是为什么张量并行只在节点内做,一般 TP=8 对应一个 8 卡 A100 节点。

InfiniBand 是跨节点的高速网络,200 Gbps(HDR)级别,延迟是微秒级,远低于普通以太网。它承载数据并行的梯度 AllReduce 和流水线并行的 Activation 传递。RDMA 特性让 GPU 直接访问远程内存,不经过 CPU,延迟更低。

训练集群的架构通常是:节点内走 NVLink 做张量并行,节点间走 InfiniBand 做数据并行和流水线并行。两者缺一不可,带宽不够就是训练速度的瓶颈,GPU 再强也发挥不出来。

常见追问

  1. NVSwitch 是什么?它对 NVLink 的拓扑有什么影响?
  2. NCCL 是怎么同时利用 NVLink 和 InfiniBand 的?它如何选择最优通信路径?
  3. 如果 InfiniBand 网络出现拥塞,对训练有什么影响?怎么监控和缓解?