何时NVLink值得使用?
Nvidia不再在消费级GPU上支持NVLink。最后一个支持NVLink的显卡是RTX 3090。现在是2026年4月,NVLink桥的价格相当高,具体价格在200到400美元之间,取决于大小以及你是否能在零售中抢到一个。由于我有两块3090,我想测试一下NVLink在AI工作负载中实际提供的好处。测试我进行了一些测试,以测量增加NVLink对AI相关工作负载的影响:模型推理采用层分割和张量并行。我使用了Llama 3.3 70B和Gemma 4 31B的llama-bench。层分割几乎不进行GPU间通信,而张量并行推理每一层都必须进行同步。模型训练分别使用DDP进行TinyLlama 1.1B的训练和FSDP进行Qwen2.5 3B的训练。DDP只在每一步计算梯度时同步一次,而FSDP则需要不断的数据传输。通过这些,我认为我有一个好的测试组合,可以在不同程度上受到GPU间带宽的影响。硬件:CPU AMD Epyc 7532(32核,128 PCIe通道),主板 Supermicro H12SSL-i,有5个PCIe 4.0 x16插槽,RAM 8通道,32GB DDR4-3200,总共256GB,GPU 2x EVGA RTX 3090,直接安装在3和6插槽中,均以全x16带宽运行,操作系统 Ubuntu 24.04,Nvidia驱动程序595。初始结果所有层分割测试的性能没有受到影响。对于张量并行模型推理,NVLink提升了大约30%的提示处理速度,而标记生成速度完全相同。张量并行运行中的标记生成速度相同是意外之喜。我原以为会有较大的差异,因为它需要频繁同步激活。尽管标记生成速度通常是重点数字,但我仍然非常关心提示处理速度,因为我的大多数使用模式(如编码代理)使用非常长的上下文窗口。FSDP训练的提升非常大,几乎提高了3倍。DDP训练没有受到任何影响。然而,我认为这些数据在某种程度上是误导性的,因为非NVLink测试实际上并没有测量通过PCIe的GPU数据传输,正如我最初所想的那样。在我所有后续的测试配置中,带层分割的推理、张量并行的标记生成以及DDP训练完全没有受到影响(在3%/噪声范围内)。我将省略那些测试的更多图表/数据,仅展示张量并行的提示处理和FSDP训练。所有数据可在此处获取。禁用NVLink进行测试的陷阱在我的第一次测试中,我为非NVLink测试设置了NCCL_P2P_DISABLE=1。我还设置了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与P2P,Nvidia的限制即便在拔掉NVLink桥后,NCCL仍然记录它使用SHM。Nvidia完全禁用了消费级GPU上的P2P,显然是出于产品细分的考虑。这是Nvidia在驱动程序级别施加的人工限制;RTX 3090和其他消费级GPU是有能力做到的。一些聪明的人已经找到了通过打补丁来绕过这一限制的方法,解决方案相当简单: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,每个GPU都获得完整的x16带宽。然而,大多数消费者在家里可能并不使用服务器平台。消费级CPU对许多PCIe通道没有支持。因此,这些CPU的主板没有太多x16插槽。一些主板宣传有2个x16插槽,但实际上是指它们有两个x16大小的插槽,但其中只有一个拥有完整的x16带宽。此外还有一个警告,即如果你在第二个x16大小的插槽中安装一块卡,它将实际从主x16插槽分割带宽,两者将以x8/x运行。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡