3. NVIDIA GPU互连技术演进

在GPU集群里,“互连”从来不是一根线的问题,而是由多条不同职责的链路叠加而成的分层体系。理解NVLink、NVSwitch、PCIe、InfiniBand与以太网的关系,关键不是记住谁更快,而是先分清它们各自处在系统的哪一层、承载什么流量、由谁发起、面向什么距离。只有把层次和职责对齐,代际关系和选型边界才会自然清晰。

一、五类互连的层次定位

从GPU芯片向外看,第一层是片间/板内GPU直连,由NVLink承担。它连接同一节点内的GPU,让GPU之间可以直接读写对端显存,绕过主机内存和PCIe,是张量并行、专家并行中All-Reduce、All-to-All等集合通信的物理基础。第二层是节点内设备总线,由PCIe承担,负责GPU与CPU、网卡、NVMe等外设的连接,也是GPU被主机枚举、加载驱动、收发网络数据的通道。第三层是节点内GPU交换,由NVSwitch承担,把多张GPU的NVLink端口汇聚成无阻塞交换结构,使8卡、16卡甚至更大规模的节点内GPU形成全互联。第四层是节点间网络,由InfiniBand或以太网承担,把多个节点连成集群,承载跨节点的梯度同步、参数分发和存储访问。

因此,NVLink与NVSwitch解决的是“节点内GPU怎么高速对话”,PCIe解决的是“GPU怎么和主机及外设对话”,InfiniBand与以太网解决的是“节点之间怎么对话”。它们不是替代关系,而是协作关系。

GPU集群互连分层与代际关系 节点内(Scale-Up) GPU 0 HBM GPU 1 HBM GPU 2 HBM GPU 3 HBM NVLink NVLink NVLink NVSwitch 无阻塞交换 · 全互联 PCIe 总线(GPU ↔ CPU / NIC / NVMe) CPU Host / 内存 NIC IB / RoCE NVMe 存储 节点间(Scale-Out) 节点 A GPU + NIC 节点 B GPU + NIC InfiniBand / 以太网 交换机 · 跨节点集合通信 跨节点流量 梯度同步 · 参数分发 · 存储 NVLink/NVSwitch:节点内GPU直连 PCIe:设备总线 · IB/以太:节点间 NVLink PCIe 节点间网络

二、代际关系:带宽与拓扑的同步跃迁

这五类互连的代际演进并非各自独立,而是围绕GPU算力提升同步推进。以NVIDIA数据中心平台为例,可以观察到一条清晰的对应关系:

平台代际NVLinkPCIe节点间网络典型节点形态
P100 / V100 时代NVLink 1.0/2.0,GPU两两直连或通过NVLink桥PCIe 3.0InfiniBand EDR/HDR 或 25/100GbE8卡节点,GPU间部分互联
A100 时代NVLink 3.0,NVSwitch 实现8卡全互联PCIe 4.0InfiniBand HDR/NDR 或 100/200GbEDGX A100,8卡全互联
H100 时代NVLink 4.0,NVSwitch 支持更大规模PCIe 5.0InfiniBand NDR 或 400GbEDGX H100,8卡全互联
GB200 时代NVLink 5.0,NVSwitch 机架级互联PCIe 5.0/6.0InfiniBand XDR 或 800GbE机架级NVLink域,多节点统一

可以看到,每一代GPU算力提升时,NVLink带宽、PCIe代际和节点间网络速率几乎同步翻倍。这不是巧合:如果只提升GPU算力而不提升互连,集合通信就会成为瓶颈,GPU利用率会随规模增大而下降。因此,选型时必须让三层互连的带宽与GPU算力保持匹配,避免出现“GPU等网络”的木桶短板。

三、选型边界:什么流量走哪条路

实际设计中最容易出错的地方,是把不同层次的流量混在一起考虑。下面给出一个可操作的判断框架:

  • GPU之间需要频繁交换中间结果(张量并行、专家并行、注意力头并行):优先走NVLink/NVSwitch。判断依据是通信是否发生在同一节点内、是否要求低延迟和高带宽、是否绕过主机内存。
  • GPU需要与CPU、网卡、存储交互:走PCIe。包括驱动加载、控制面通信、数据预处理、网络收发。PCIe带宽通常远低于NVLink,因此不应把大规模GPU间通信放到PCIe上。
  • 跨节点梯度同步、参数分发:走InfiniBand或以太网。选择IB还是以太网,取决于对延迟、拥塞控制、RDMA支持和运维生态的要求。IB在超大规模训练中通常延迟更低、拥塞控制更成熟;以太网在成本、通用性和云环境中更有优势,RoCEv2可提供RDMA能力。
  • 存储访问和检查点写入:通常走节点间网络到存储集群,也可能通过PCIe连接本地NVMe。需要根据存储带宽和访问模式决定是否使用GPUDirect Storage。
判断口诀:节点内GPU对话看NVLink/NVSwitch,设备对话看PCIe,节点对话看IB/以太网。先确定通信双方的位置,再确定流量类型,最后匹配对应层次的带宽和协议。

四、一个具体的选型示例

假设要搭建一个16节点的H100训练集群,每节点8卡,用于训练百亿参数级模型,采用张量并行加流水线并行加数据并行的混合策略。可以按以下方式分配互连资源:

节点内:
  GPU 0-7 通过 NVSwitch 全互联,NVLink 4.0
  张量并行组(TP=8)完全落在节点内,All-Reduce 走 NVLink
  PCIe 5.0 连接 CPU、NIC、NVMe,承载控制面和数据加载

节点间:
  每节点配置 8 张 NDR InfiniBand NIC(400Gb/s),
  或 4 张 800GbE NIC,绑定后接入叶脊网络
  流水线并行和数据并行的跨节点通信走 IB/以太网
  存储访问通过 GPUDirect Storage 经 NIC 直达存储集群

带宽匹配检查:
  NVLink 4.0 单GPU 900GB/s,节点内聚合 7.2TB/s
  NDR IB 单端口 50GB/s,8端口聚合 400GB/s
  节点间带宽约为节点内带宽的 1/18,
  因此跨节点通信应尽量少、尽量重叠,避免频繁全量同步

这个示例说明:选型不是简单选“最快的”,而是让每一层互连承担它最擅长的流量,并通过并行策略把通信量压到对应层次能够承受的范围内。如果跨节点通信量过大,即使使用NDR InfiniBand也会成为瓶颈;如果节点内GPU通信没有走NVLink而走了PCIe,性能损失会非常明显。

五、常见误区与边界提醒

第一个误区是认为“有了InfiniBand就不需要NVLink”。实际上,NVLink解决的是节点内GPU显存直访,延迟和带宽远高于任何节点间网络,跨节点网络无法替代。第二个误区是认为“PCIe 5.0足够快,可以承载GPU间通信”。PCIe 5.0 x16单向约64GB/s,而NVLink 4.0单GPU可达900GB/s,差距超过一个数量级。第三个误区是忽略NVSwitch的拓扑约束:NVSwitch提供的是节点内无阻塞交换,但跨节点仍然要经过NIC和网络,NVLink域不会自动延伸到其他节点,除非使用GB200这类机架级NVLink方案。

因此,选型边界可以归纳为三条:距离决定层次,流量决定带宽,协议决定生态。先看通信双方在不在同一节点、同一NVLink域,再看流量是集合通信、点对点还是存储访问,最后看协议栈是否支持RDMA、拥塞控制和目标运维体系。把这三步走完,NVLink、NVSwitch、PCIe、InfiniBand与以太网各自的位置和取舍就会非常明确。