NVLink 与 PCIe 对比:带宽、拓扑,以及何时真正重要
NVLink 为每张 GPU 提供的带宽是 PCIe 插槽的数倍,但很多涉及多张 GPU 的工作根本用不上它。本文给出具体数字、依赖互联的工作负载,以及如何查看您的服务器用的是哪种互联。

NVLink 与 PCIe 的区别,说到底是 GPU 之间交换数据的速度问题。PCIe 是把 GPU 连接到服务器其余部分的通用总线。NVLink 则是 NVIDIA 专为 GPU 间通信设计的链路,每张 GPU 的带宽约为 PCIe Gen5 x16 插槽的 7 到 14 倍。您是否需要它,取决于 GPU 之间的通信量有多大:对张量并行和大规模训练而言,它起决定性作用;对单卡任务和数据并行推理服务而言,它几乎无关紧要。下面给出具体数字,以及分属两边的工作负载。
NVLink 与 PCIe:带宽数据
先说一个陷阱:PCIe 的数字通常按单向给出,而 NVIDIA 给出的 NVLink 数字是双向合计。比较时要统一口径。表中 PCIe 和 NVLink 的数字按每张 GPU 计,网络链路按每块网卡计。
| 链路 | 双向合计 | 单向 | 见于 |
|---|---|---|---|
| PCIe Gen4 x16 | ≈ 64 GB/s | ≈ 32 GB/s | L40S |
| PCIe Gen5 x16 | ≈ 128 GB/s | ≈ 64 GB/s | RTX PRO 6000、RTX 5090 |
| NVLink 4 | 900 GB/s | 450 GB/s | HGX 基板上的 H100 和 H200 |
| NVLink 5 | 1.8 TB/s | 900 GB/s | HGX 基板上的 B200 和 B300;GB300 NVL72 |
| 400G 网卡 | ≈ 100 GB/s | 50 GB/s | 服务器之间 |
| 800G 网卡 | ≈ 200 GB/s | 100 GB/s | 服务器之间 |
因此,NVLink 4 为每张 GPU 提供的带宽约为 PCIe Gen5 x16 插槽的 7 倍,NVLink 5 约为 14 倍。PCIe 的数字依据 PCIe 规范推算(Gen5 每通道 32 GT/s,Gen4 每通道 16 GT/s,已扣除编码开销),均为峰值;实际传输速率会略低一些。NVLink 的数字来自 NVIDIA。
NVSwitch、HGX 基板与 NVL72 机架
每张 GPU 的带宽只是问题的一半。另一半是拓扑,也就是哪张 GPU 能以全速访问哪些其他 GPU。
- PCIe 服务器。GPU 挂在 CPU 根端口或 PCIe 交换芯片上。GPU 之间的流量要经过这些交换芯片;跨 CPU 插槽时,还要经过 CPU 之间的链路。此外,这些流量可能与网卡和 NVMe 硬盘共享带宽。
- HGX 基板。8 张 SXM GPU 位于同一块基板上,由 NVSwitch 芯片以完整的 NVLink 带宽把每张 GPU 与其余每张 GPU 连接起来。全部 8 张 GPU 可以同时以任意模式交换数据,这正是集合通信所需要的。
- NVL72 机架。GB300 NVL72 把 NVLink 域从 8 张 GPU 扩展到整个液冷机架中的 72 张 GPU;根据 NVIDIA 的数据,NVLink 总带宽为 130 TB/s。跨全部 72 张 GPU 的集合通信完全不经过网络。
- AMD MI355X。AMD 的 8 卡平台采用了第三种方案:不用交换芯片,而是每张 GPU 配备 7 条 Infinity Fabric 链路,分别连向其余 7 张 GPU;根据 AMD 的数据,每条链路的带宽为 153.6 GB/s。
什么时候互联至关重要
以下三种模式会让 GPU 间带宽成为瓶颈。
张量并行
| 链路 | 单向带宽 | 传输 37.6 GB 的理想耗时 |
|---|---|---|
| PCIe Gen5 x16 | 64 GB/s | ≈ 0.59 s |
| NVLink 4 | 450 GB/s | ≈ 0.08 s |
| NVLink 5 | 900 GB/s | ≈ 0.04 s |
训练中的大规模 all-reduce
混合专家模型的 all-to-all
| 工作负载 | GPU 间流量 | 对互联的敏感度 |
|---|---|---|
| 张量并行 | 高 | |
| 高 | ||
| 专家并行(MoE) | 高 | |
| 数据并行训练 | 中;大模型为高 | |
| 流水线并行 | 在各阶段边界传递激活值 | 低到中 |
| 数据并行推理,每张 GPU 一个模型副本 | 无 | 无 |
| 单卡任务、渲染、批处理 | 无 | 无 |
什么时候 PCIe 就够用
- 对单卡装得下的模型做数据并行推理。每张 GPU 运行自己的模型副本,由负载均衡器分发请求。GPU 之间从不交换张量,因此无论用什么连接,吞吐量都会随副本数量增长。我们的大语言模型推理最佳 GPU 选型指南列出了哪些模型单卡就能装下。
- 单卡工作。对单卡装得下的模型做 LoRA 微调、图像和视频生成、渲染、嵌入向量计算,以及大部分开发工作。
- 流水线并行。当一个模型确实需要多张 GPU 时,按层切分只需在每个边界传递激活值:同样是在 70B 级模型上处理 8K token 的提示词,每个边界约 134 MB,按 PCIe Gen5 的速度约需 2 ms,而张量并行下每张 GPU 要传输 37.6 GB。代价是延迟,因为对每个请求而言,各个阶段是依次执行的。
- 易并行任务。批量推理、超参数搜索和渲染农场都能干净利落地拆分到多张 GPU 上。
无论是 HGX 服务器还是 PCIe 服务器,GPU 都要通过 PCIe 与主机通信,以加载数据和权重,因此主机侧的 PCIe 在任何服务器上都很重要。NVLink 从总线上移走的,是 GPU 之间的流量。
我们产品线中的 NVLink 服务器与 PCIe 服务器
两类 8 卡服务器我们都出租,而互联方式正是它们之间的一大区别。
| 服务器 | GPU 间互联 | 显存 | 网络 | 月价 |
|---|---|---|---|---|
| HGX H100 | NVLink 4,每张 GPU 900 GB/s | 8 × 80 GB | US$16,900 | |
| HGX H200 | NVLink 4,每张 GPU 900 GB/s | 8 × 141 GB | US$23,900 | |
| HGX B200 | NVLink 5,每张 GPU 1.8 TB/s | 8 × 180 GB | US$34,900 | |
| HGX B300 | NVLink 5,每张 GPU 1.8 TB/s | 8 × 288 GB | US$39,900 | |
| 8× MI355X | Infinity Fabric 全互联,7 × 153.6 GB/s | 8 × 288 GB | 8 × 400G RoCE | US$19,900 |
| 8× RTX PRO 6000 | PCIe Gen5,无 NVLink | 8 × 96 GB | 2 × 100 GbE | US$10,490 |
RTX PRO 6000 服务器是我们产品目录中价格最低的 8 卡服务器,配备 768 GB 显存;对于合适的工作负载,没有 NVLink 不会带来任何损失。它适合:
- 运行 8 个相互独立的模型副本(模型需能装入 96 GB),例如每张卡运行一个 FP8 精度的 70B 模型。
- 渲染、图像和视频生成,以及其他按 GPU 独立进行的工作。
- 以流水线并行方式为单卡装不下的模型提供推理服务。
如果您依赖大规模张量并行、要训练必须跨 GPU 分片的模型、运行专家并行的 MoE 模型,或者计划进行多节点训练,请改选 HGX 服务器:HGX 服务器配备 8 块 400G 或 800G 网卡,而这台 PCIe 服务器只有 2 个 100 GbE 端口。我们的 RTX PRO 6000 与 H100 对比从单卡的角度分析了同一个选择。
跨服务器:InfiniBand 与 RoCE
除 NVL72 机架外,NVLink 止步于服务器边界。在服务器之间,GPU 通过网卡使用 RDMA 通信,底层可以是 InfiniBand,也可以是采用 RoCE(RDMA over Converged Ethernet,融合以太网上的 RDMA)的以太网。一块 400G 网卡的单向带宽为 50 GB/s,因此即使每张 GPU 配备一块网卡,GPU 与另一台服务器通信时,也只能获得其 NVLink 4 带宽的约九分之一。
这一差距决定了多节点训练的标准布局:把张量并行限制在服务器内部,也就是 NVLink 所在的地方;跨服务器则采用流水线并行和数据并行。NCCL(AMD 平台上为 RCCL)会自动选择传输方式:节点内走 NVLink,节点之间走网络。设置 NCCL_DEBUG=INFO 可以查看它选择了什么;当服务器有多个网络接口时,可以用 NCCL_IB_HCA 和 NCCL_SOCKET_IFNAME 来引导它。您的服务器之间的私有网络可应要求开通,我们的多 GPU 与 NCCL 指南详细介绍了相关配置。
如何查看 GPU 之间的互联方式
不要轻信规格表。在 NVIDIA 服务器上,三条命令就能告诉您实际拿到的是什么:
# Connection matrix: NV# means NVLink; PIX, PXB, PHB, NODE and SYS are
# paths of increasing distance through PCIe switches, host bridges and CPUs
nvidia-smi topo -m
# State and speed of each NVLink link (HGX servers)
nvidia-smi nvlink --status
# Measured all-reduce bandwidth across all eight GPUs, from NVIDIA's nccl-tests
./build/all_reduce_perf -b 8M -e 4G -f 2 -g 8
常见问题
NVLink 比 PCIe 快吗?
是的,而且快得多。根据 NVIDIA 公布的数据,H100 和 H200 上的 NVLink 4 每张 GPU 为 900 GB/s,B200 和 B300 上的 NVLink 5 为 1.8 TB/s;而一个 PCIe Gen5 x16 插槽的双向合计带宽约为 128 GB/s。
LLM 推理需要 NVLink 吗?
只有当模型必须通过张量并行拆分到多张 GPU 上时才需要。如果模型单卡就能装下,每张 GPU 运行一个副本,GPU 之间不会产生流量,PCIe 就足够了。
RTX PRO 6000 支持 NVLink 吗?
不支持。RTX PRO 6000 Blackwell Server Edition 通过 PCIe Gen5 连接,没有 NVLink,因此我们的 8× RTX PRO 6000 服务器更适合相互独立的副本、渲染和流水线并行推理服务,而不是高强度的张量并行。
NVSwitch 是什么?
NVSwitch 是 NVIDIA HGX 基板上的交换芯片,它以完整的 NVLink 带宽把全部 8 张 GPU 两两互联,使每一对 GPU 都能同时通信。NVL72 机架把同样的思路扩展到由 72 张 GPU 组成的 NVLink 域。
服务器之间没有 NVLink,也能跨多台服务器训练吗?
可以。NVLink 连接的是一台服务器或一个 NVL72 机架内部的 GPU,服务器之间的流量则通过 InfiniBand 或 RoCE 网卡传输。请把张量并行限制在服务器内部,跨服务器则采用数据并行或流水线并行。


