1.1 通信拓扑入门
大模型训练离不开多卡协作,而多卡协作的效率很大程度上取决于卡与卡之间”搬数据”的速度。本文是一篇轻量级入门,帮你建立通信拓扑的基本概念和直觉,为后续深入分布式训练打下基础。
📑 目录
- 1. 为什么 AI Infra 工程师需要懂通信拓扑
- 2. GPU 之间怎么连接:三种方式
- 3. 机器之间怎么连接
- 4. 集合通信:多卡之间怎么交换数据
- 5. 建立关键直觉
- 6. 动手验证:查看你的 GPU 拓扑
- 总结
- 自我检验清单
- 参考资料
1. 为什么 AI Infra 工程师需要懂通信拓扑
一句话说清:当模型大到一张卡装不下时,你必须让多张卡一起干活,而整体效率不仅取决于每张卡算得多快,还取决于卡与卡之间传数据的速度。
打个比方:一组人合作搬砖盖房子,效率不仅看每个人搬砖的速度,还要看人与人之间传递砖块有多快。如果两个人面对面递砖,那很快;如果隔着一条马路还要等红绿灯,那再能干的人也得干等着。GPU 之间的通信就是这个”传砖”的过程——通信拓扑决定了谁和谁之间有”直达通道”,谁和谁之间要”绕路”。
2. GPU 之间怎么连接:三种方式
2.1 PCIe:基础互联
PCIe 是 GPU 与 CPU 之间、以及 GPU 之间最基本的连接通道。可以把它理解为城市里的普通马路——什么车都能跑,但车道有限,还有红绿灯。
目前数据中心常见的是 PCIe 5.0,单向带宽约 64 GB/s(x16 通道)。这个速度用来传模型参数和梯度其实捉襟见肘,尤其是需要频繁通信的张量并行场景。
2.2 NVLink:GPU 专属高速通道
NVLink 是 NVIDIA 专门为 GPU 之间通信设计的高速链路。它不走 PCIe 总线,而是在 GPU 之间搭了一条”专用高速公路”——车道多、限速高、没有红绿灯。
关键数字:
- H100 (NVLink 4.0):每 GPU 总带宽 900 GB/s,是 PCIe 5.0 的约 14 倍
- B200 (NVLink 5.0):每 GPU 总带宽 1800 GB/s,是 PCIe 5.0 的约 28 倍
这个数量级的差距,直接决定了一条重要的工程准则:高频通信的并行策略必须限制在 NVLink 互联的范围内。
2.3 NVSwitch:全连接交换
一台 8 卡 GPU 服务器中,如果每两张卡都用 NVLink 直连,布线会非常复杂。NVSwitch 就是一个高速公路立交枢纽——所有 GPU 通过它实现互联,任意两张卡之间都能跑满带宽。
1 | ┌──────────────────────────────────┐ |
NVSwitch 的核心价值:无论哪两张卡通信,带宽都是满速的,不存在”有的快有的慢”的拓扑瓶颈。
2.4 带宽对比总结
| 连接方式 | 典型带宽 | 相对 PCIe 5.0 | 特点 |
|---|---|---|---|
| PCIe 5.0 (x16) | 64 GB/s | 1x | 通用接口,什么设备都能连 |
| NVLink 4.0 (H100) | 900 GB/s | ~14x | GPU 专属,高带宽低延迟 |
| NVLink 5.0 (B200) | 1800 GB/s | ~28x | 最新一代,带宽翻倍 |
| NVSwitch (H100) | 任意卡对 900 GB/s | ~14x | 全连接,消除拓扑瓶颈 |
3. 机器之间怎么连接
单机 8 卡是 AI 训练的基本单元,但大模型训练通常需要几十到上百台机器组成集群。此时,机器之间的网络互联就成了关键瓶颈。
3.1 InfiniBand:AI 集群的主流选择
InfiniBand(简称 IB)是当前大规模 AI 训练集群中最主流的网络方案。用白话说,它就是专门为”机器之间搬大量数据”设计的高性能网络——延迟低到微秒级,带宽远超普通以太网。
IB 的核心技术叫 RDMA(远程直接内存访问),允许一台机器直接读写另一台机器的内存,绕过操作系统内核,省去了大量中间环节。
关键数字:
- NDR 400Gb/s(约 50 GB/s):当前主流
- XDR 800Gb/s(约 100 GB/s):最新一代
3.2 RoCE:以太网上的替代方案
RoCE(RDMA over Converged Ethernet)让普通以太网硬件也能支持 RDMA。它的优势是成本较低,可以复用已有的以太网基础设施;劣势是延迟和大规模稳定性不如 InfiniBand。
3.3 对比总结
| 维度 | InfiniBand (NDR) | RoCE v2 | 传统以太网 (TCP) |
|---|---|---|---|
| 带宽 | 400 Gb/s (50 GB/s) | 100-400 Gb/s | 10-100 Gb/s |
| 延迟 | ~1 us | ~2-5 us | ~50-100 us |
| CPU 开销 | 极低 (RDMA) | 低 (RDMA) | 高 (内核协议栈) |
| 成本 | 高(专用设备) | 中 | 低 |
| 典型用户 | 大型 AI Lab | 云厂商、中小集群 | 通用场景 |
4. 集合通信:多卡之间怎么交换数据
多张 GPU 之间的数据交换不是随意乱传的,而是遵循一套标准化的操作模式,叫做”集合通信原语”。你可以把它理解成多卡之间约定好的”数据搬运动作”——每个动作有固定的输入输出模式。
这里介绍分布式训练中最常用的三种。
4.1 AllReduce:所有人汇总,所有人拿到结果
用途:数据并行训练中同步梯度。每张卡算出自己的梯度,AllReduce 后每张卡都得到相同的汇总梯度。
1 | 操作前: AllReduce(sum) 后: |
4.2 AllGather:每人拿一片,最后人人拿全部
用途:ZeRO-3 训练中,前向传播前收集分布在各卡上的模型参数。
1 | 操作前: AllGather 后: |
4.3 ReduceScatter:先汇总再切片分配
用途:ZeRO 系列中,将归约后的梯度分片存储到各卡,节省显存。
1 | 操作前: ReduceScatter(sum) 后: |
4.4 通信量直觉:一个简单估算
假设 4 张卡做一次 AllReduce,数据量为 2GB(比如模型梯度大小)。不同互联方式下的耗时差异:
| 互联方式 | 带宽 | 2GB AllReduce 估算耗时 |
|---|---|---|
| NVLink 4.0 | 900 GB/s | ~2.2 ms |
| IB NDR | 50 GB/s | ~40 ms |
| 传统以太网 (25GbE) | ~3 GB/s | ~670 ms |
NVLink 比 IB 快约 18 倍,比传统以太网快约 300 倍。这就是为什么张量并行(每层都要做 AllReduce)必须限制在 NVLink 互联的机器内部。
5. 建立关键直觉
5.1 速度总览
| 连接方式 | 典型带宽 | 延迟量级 | 适合的并行策略 |
|---|---|---|---|
| NVLink 4.0 | 900 GB/s | ~us | 张量并行 (TP):每层都要通信,必须走最快的路 |
| IB NDR | 50 GB/s | ~1-2 us | 流水线并行 (PP)、数据并行 (DP):通信频率低或可重叠 |
| 传统以太网 | 1-12 GB/s | ~50-100 us | 不适合训练通信,仅用于管理网络 |
5.2 核心结论
TP 限机内,PP/DP 可跨机。 原因很直接:
- 张量并行在模型的每一层前向和反向中都要做 AllReduce,通信频率极高。只有 NVLink 的带宽才能撑住,所以 TP 组的 GPU 必须在同一台机器内(NVLink 互联)。
- 流水线并行和数据并行的通信频率较低、或者可以与计算重叠,IB 的带宽足够承载,因此可以跨机部署。
这条规则是大模型训练集群设计的基石。
6. 动手验证:查看你的 GPU 拓扑
6.1 nvidia-smi topo -m
在 GPU 服务器上执行这条命令,可以直观看到每张卡之间的互联方式:
1 | nvidia-smi topo -m |
输出示例:
1 | GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 |
常见标记含义:
- NV18:通过 18 条 NVLink 连接(NVLink 4.0 满配)
- PHB:通过 PCIe Host Bridge 连接(同一 PCIe 交换机下)
- SYS:跨 NUMA 节点,需经过系统总线(最慢的机内路径)
- NODE:同一 NUMA 节点内,通过 PCIe 连接
看到 NV 开头的就放心——这对卡之间走的是 NVLink 高速通道。看到 PHB 或 SYS,说明这对卡之间只有 PCIe 带宽,TP 不应该跨这对卡。
6.2 简单代码验证:PyTorch AllReduce
以下是一个最简单的多卡 AllReduce 示例,验证通信是否正常工作:
1 | import torch |
启动命令(4 卡):
1 | torchrun --nproc_per_node=4 allreduce_test.py |
如果每张卡输出的结果一致,说明多卡通信链路正常。
📝 总结
本文介绍了通信拓扑的三个核心层次:
- 机内互联:PCIe 是基础,NVLink 是 GPU 间的专属高速通道(比 PCIe 快 14-28 倍),NVSwitch 实现全连接
- 跨机互联:InfiniBand 是 AI 集群主流选择(微秒级延迟,50-100 GB/s),RoCE 是低成本替代
- 集合通信:AllReduce、AllGather、ReduceScatter 是多卡数据交换的标准动作
一条核心直觉贯穿全文:带宽差异决定并行策略的边界——NVLink 和 IB 之间 18 倍的带宽鸿沟,直接划定了”TP 限机内,PP/DP 可跨机”这条工程铁律。
🎯 自我检验清单
- 能说出 NVLink 4.0 与 PCIe 5.0 的带宽数量级差异(约 14 倍)
- 能解释 NVSwitch 的作用:消除机内 GPU 间的拓扑瓶颈
- 能说出 InfiniBand NDR 的带宽量级(400Gb/s,约 50 GB/s)
- 能画出 AllReduce 的数据流动示意,说出它在数据并行中的用途
- 能解释”TP 不跨机”的物理原因:NVLink vs IB 的带宽差距
- 能用
nvidia-smi topo -m读懂输出,判断哪些卡走 NVLink