一句话:NVLink 是 NVIDIA 给 GPU 之间修的专用高速通道,NVSwitch 是让多块 GPU 像电话交换机一样两两全互联的交换芯片。
为什么 GPU 之间不能只靠 PCIe?PCIe(Peripheral Component Interconnect Express)是服务器里的通用总线,CPU、网卡、SSD、GPU 都挂在上面。它的设计目标是“兼容各种设备”,而不是“让 GPU 互相狂聊”。两块 GPU 通过 PCIe 通信时,数据往往要经过 PCIe 交换机甚至 CPU 这一跳,带宽有限、延迟更高;多卡一起通信还会争抢通道。打个比方:PCIe 像城市主干道,什么车都能走,但 GPU 之间的数据得先绕到市中心(CPU)再出去,车一多就堵。
NVLink 则像 GPU 之间的专用高速公路:点对点直连,带宽高、延迟低,专为 GPU 间数据交换设计。但点对点直连有个天花板——GPU 一多,不可能每两块都拉一条线。于是 NVSwitch 出场:它像立交桥或电话交换机,每块 GPU 都连到交换机上,任意两块 GPU 都能以接近全带宽通信,构成一个“NVLink 域”。
| 维度 | PCIe 互联 | NVLink 点对点 | NVSwitch 全互联 |
|---|---|---|---|
| 定位 | 通用外设总线 | GPU 间专用高速通道 | GPU 间交换网络 |
| 拓扑 | 共享,常需绕行 CPU | 两两直连 | 任意 GPU 到任意 GPU |
| 通信特点 | 带宽有限、争抢明显 | 高带宽、低延迟 | 高带宽、可扩展 |
| 对张量并行的意义 | 易成瓶颈,适合小规模 | 可支撑卡间切分 | 支撑更大域内并行 |
张量并行(Tensor Parallelism)为什么依赖它?张量并行把一层权重切到多块 GPU 上,每算一层都要做 all-reduce、all-gather 等集合通信(collective communication)。计算越快,通信占比越高。如果 GPU 间带宽不够,GPU 就会“算完等数据”,扩展效率暴跌。所以实践中:PCIe 域通常只适合数据并行、流水线并行或小规模张量并行;大模型训练更愿意把张量并行限制在一个 NVLink 域内,跨域再用流水线并行和数据并行。能开几路张量并行,本质上受互联域大小和带宽约束。
对从业者来说,选卡、租实例、设计并行策略时,先看 GPU 间是 PCIe 还是 NVLink,NVLink 是点对点还是 NVSwitch 全互联。这决定你能开几路张量并行、要不要上流水线并行,以及训练吞吐和成本。对普通人来说,大模型能跑得动、回答得快,背后也靠这些看不见的高速公路,把成千上万块 GPU 粘成一台“虚拟大电脑”。具体产品规格以 NVIDIA 官方页面为准。
