NVLink 何时值得使用?

Hacker News Top 新闻

摘要

在双 RTX 3090 上测试 NVLink 用于 AI 推理和训练,发现张量并行提示处理(30%)和 FSDP 训练(3 倍)有显著加速,但对令牌生成或分层推理影响极小。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/22 17:24

# NVLink 何时值得购买? 来源:https://platform-fools.com/posts/2026-04-27-nvlink/ 英伟达已不再为消费级 GPU 支持 NVLink。最后一批支持该功能的显卡是 RTX 3090。 截至 2026 年 4 月,NVLink 桥接器价格不菲,根据具体尺寸以及能否以零售价抢购,价格在 200 至 400 美元之间。由于我手头有两张 3090,因此想测试一下 NVLink 对 AI 工作负载的实际提升效果。 ## 测试内容 我进行了一系列测试,以衡量添加 NVLink 对 AI 相关工作负载的影响: - **模型推理**,采用层级拆分和张量并行。使用了 llama-bench 配合 Llama 3.3 70B(https://huggingface.co/unsloth/Llama-3.3-70B-Instruct-GGUF)和 Gemma 4 31B(https://huggingface.co/unsloth/gemma-4-31B-it-GGUF)。层级拆分的 GPU 间通信极少,而张量并行推理则需要在每一层进行同步。 - **模型训练**,使用 DDP 训练 TinyLlama 1.1B(https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0),使用 FSDP 训练 Qwen2.5 3B(https://huggingface.co/Qwen/Qwen2.5-3B)。DDP 仅在每一步计算梯度时同步一次,而 FSDP 则需要持续的数据传输。 通过上述测试,我认为我获得了受影响程度不同的、由 GPU 间带宽决定的良好测试组合。 ## 硬件 CPU:AMD Epyc 7532(32 核,128 条 PCIe 通道) 主板:Supermicro H12SSL-i,5 个 PCIe 4.0 x16 插槽 内存:8 通道,32GB DDR4-3200,总计 256GB GPU:2 张 EVGA RTX 3090,直接安装在插槽 3 和 6,均以完整的 x16 带宽运行。 操作系统:Ubuntu 24.04,Nvidia 驱动 595 ## 初始结果 所有层级拆分测试的性能均未受影响。对于采用张量并行的模型推理,NVLink 将提示处理速度提升了约 30%,而令牌生成速度完全相同。 张量并行测试中令牌生成速度保持不变,这出乎意料。我原以为会产生较大差异,因为它需要频繁同步激活值。尽管令牌生成速度通常是关注焦点,但我仍然非常关心提示处理速度,因为我的大多数使用模式(例如编码代理)都使用非常长的上下文窗口。 FSDP 训练的性能提升巨大,接近 3 倍。DDP 训练完全未受影响。 然而,我认为这些数据有些误导性,因为非 NVLink 测试实际上并未按照我最初的想法测量 PCIe 上的 GPU 数据传输。 > 在我后续的所有测试配置中,层级拆分推理、张量并行令牌生成以及 DDP 训练完全不受影响(误差在 3% 以内/噪声范围内)。**我将省略这些测试的更多图表/数据,仅展示张量并行提示处理和 FSDP 训练**。所有数据可在此处获取(https://platform-fools.com/posts/2026-04-27-nvlink/data.html)。 ## 在测试中禁用 NVLink 的陷阱 在第一次测试中,我使用了 `NCCL_P2P_DISABLE=1` 进行非 NVLink 测试。我还设置了 `NCCL_DEBUG=INFO`,以便验证 GPU 是否使用了预期的通道。在测试启动时,我注意到如下日志: ``` gpu:11419:11419 [0] NCCL INFO Channel 03 : 0[0] -> 1[1] via SHM/direct/direct ``` 这意味着 GPU 并未使用 P2P(通过 PCIe 的点对点通信),而是回退到了 SHM(共享主机内存),这会导致到主内存的完整往返,性能损失更大。 实际上,在安装了 NVLink 的情况下,无法专门禁用它并强制 GPU 使用 P2P。`NCCL_P2P_DISABLE=1` 也会禁用 PCIe 上的 P2P,数据传输会通过 SHM 进行。 我重新进行了测试,方法是物理拔掉 NVLink 桥接器。 ## SHM vs P2P,英伟达的限制 即使拔掉 NVLink 桥接器后,NCCL 仍然记录正在使用 SHM。英伟达完全禁用了消费级 GPU 上的 P2P,这很可能是出于产品定位的考虑。这是英伟达在驱动层面人为施加的限制;RTX 3090 及其他消费级 GPU 实际上具备此能力。一些聪明人已经找到了绕过此限制的方法,即修补驱动,安装起来相当简单:open-gpu-kernel-modules(https://github.com/aikitoria/open-gpu-kernel-modules)。 我安装了补丁并再次测试。这次 NCCL 日志消息表明正在使用 P2P: ``` gpu:11090:11152 [1] NCCL INFO Channel 00/0 : 1[1] -> 0[0] via P2P/direct pointer ``` ## 使用实际 P2P 通信的结果 启用 P2P 几乎完全弥补了 SHM 与 NVLink 之间的差距。提示处理速度基本相同,FSDP 训练性能达到 NVLink 的 90% 以上。 **那么,为什么有人会花 300 美元买一个 NVLink 桥接器呢?** ## 消费级平台 对于我特定的配置来说,NVLink 并没有带来太多好处。我使用的是服务器级 CPU 和主板(Epyc 7532 + Supermicro H12SSL-i),它配备多个完整的 PCIe Gen4 x16 插槽。我可以安装多个 GPU,每个都能获得完整的 x16 带宽。然而,普通消费者在家中可能不会使用服务器平台。 消费级 CPU 支持的 PCIe 通道数不多。因此,这些 CPU 的主板也不会有很多 x16 插槽。有些主板号称有 2 个 x16 插槽,但实际上是指有两个 x16 尺寸的插槽,但只有其中一个具有完整的 x16 带宽。此外,还有一个限制:如果你将显卡插入第二个 x16 尺寸的插槽,它会从主 x16 插槽分流带宽,导致两者都运行在 x8/x8 模式。 我能找到的最昂贵的两款消费级主板在其规格中明确指出,它们实际上只有一个完整的 x16 带宽插槽,使用第二个插槽将导致 x8/x8 配置。 - MSI MEG X870E GODLIKE X EDITION(https://www.msi.com/Motherboard/MEG-X870E-GODLIKE-X-EDITION/Specification) - Gigabyte Z890 AORUS XTREME AI TOP(https://www.gigabyte.com/Motherboard/Z890-AORUS-XTREME-AI-TOP/sp) 售价分别为 1300 美元和 1000 美元(零售价 1500-1800 美元)。这些产品的命名和营销方式颇为滑稽(“极限 AI”和“神级版本”),但令人遗憾的是,消费级 CPU 的限制意味着它们无法充分利用多个 GPU——而这往往是升级 AI 工作流的主要途径。它们与便宜得多的主板具有完全相同的 PCIe 能力。例如,Asus ProArt B650 Creator(https://www.us.asus.com/us/motherboards-components/motherboards/proart/proart-b650-creator/techspec/)零售价约为 230 美元,其 2 个 PCIe x16 插槽也支持 x16 和 x8/x8 模式。 在所有上述情况下,NVLink 桥接器完全绕过了 PCIe 插槽的限制,使 GPU 能够以最大带宽通信。 我进入 BIOS,将我的 PCIe 插槽限制为 x4 和 x8,以模拟更常见的消费级配置下的情况。 ## PCIe x8 和 x4 下的性能 对于张量并行推理,P2P 在 x8 和 x4 下分别下降了约 5% 和 15%。基于 NVLink 的运行在所有配置下性能相同,而 SHM 测试则比两者都慢得多。 减少 PCIe 通道对 FSDP 训练的影响更为显著。即使使用了 P2P 驱动补丁,其效果也会因 PCIe 带宽的限制而下降。在 P2P 驱动下,如果运行在 x8/x8 模式,NVLink 大约快 50%;如果 GPU 运行在 x4 带宽下,NVLink 可将训练速度提升一倍。 ### SHM 瓶颈 一个有趣的观察是,SHM 结果的下降幅度不如 P2P 结果明显。在所有测试中,x8 和 x16 的结果完全相同,仅在 x4 模式下提示处理和训练都下降了约 5%。这表明 SHM 的瓶颈不在于 PCIe 通道,而在于通往主内存路径上的其他环节。 ## 直接测量 GPU ↔︎ GPU 带宽 为了在测试中确认每种配置,我运行了 p2pBandwidthLatencyTest(https://github.com/NVIDIA/cuda-samples/blob/master/Samples/5_Domain_Specific/p2pBandwidthLatencyTest/)。 这里清楚地展示了我们所见结果的原因。无论底层 PCIe 配置如何,NVLink 始终提供 100GB/s 的带宽。PCIe 上的 P2P 带宽随 PCIe 通道数线性扩展,而 SHM 似乎在远低于可用 PCIe 带宽处就已出现瓶颈。 ## 结论 对于在家中使用双 GPU 的用户来说,NVLink 在某些情况下值得购买。而我的配置恰好是少数例外之一,不值得购买。 **如果以下所有条件都成立,那么 NVLink 是明智的选择:** - 你没有运行 Linux,或者不愿意应用第三方 P2P 驱动补丁(我找不到 Windows 的等效方案) - 你使用的是消费级平台,其中多个 GPU 会导致 PCIe 降至 x8/x8 或更低 - 你的工作负载是 FSDP 训练,或者(程度稍轻)是张量并行的提示处理 GPU 间的带宽并非对所有工作负载都有相同影响。在我的测试中,FSDP 训练的提升最大,尤其是在 PCIe 通道数较低的情况下;而张量并行的提示处理则获得了中等程度的提升。 值得注意的是,我在驱动层面禁用 P2P 后的初始结果,正是大多数用户在开箱即用情况下会体验到的。该补丁是非官方的且仅适用于 Linux,因此如果你无法或不愿应用它,NVLink 桥接器就成为获得多 GPU 全部优势的唯一途径。 NVLink 桥接器并不便宜。算笔账:与其购买 NVLink 桥接器,你可能可以购买一台工作站(如 Threadripper)或服务器(如 Epyc/Xeon)平台,这些平台原生提供完整的 x16 通道。

相似文章