GPUFits

多卡跑本地大模型:NVLink、PCIe 与层拆分详解

更新于 2026-08-04 · 核实于 2026-08-04

单卡上限 32GB。而你真正想跑的模型需要 48GB、74GB、96GB。多卡推理到底怎么工作,营销话术哪里在骗人——这篇讲完。

拆分模型的两种方式

层拆分(流水线并行) 是 llama.cpp 和 Ollama 的默认做法:第 1–40 层在显卡 1,第 41–80 层在显卡 2。每个 token 先流过显卡 1,激活值再经 PCIe 传给显卡 2。简单、任何卡都行,而且——对推理至关重要的是——每个 token 的卡间流量极小(只有几 MB 的激活值)。

张量并行每一层拆到所有卡上(vLLM,部分 llama.cpp 模式)。每个 token 的计算都需要所有卡持续通信。规模化时更快,但要求极高的互联带宽——NVLink 就是为这个准备的。

单用户推理,PCIe 层拆分就是全部所需。 NVLink 的 900 GB/s 解决的是一个你没有的问题。

显存算法:直接相加

两张 24GB 的卡给你 48GB 可用容量。四张就是 96GB。我们不为张量并行开销打折(它很小,判定分档里已有的安全边际足以吸收):

配置可用显存能跑什么(Q4_K_M)
2× RTX 3090/409048 GBLlama-3.3-70B(勉强,约 47.4GB)
2× RTX A600096 GBgpt-oss-120b(勉强)、Q8 的 70B
4× RTX 309096 GB同上容量,更便宜,更耗电
4× RTX 409096 GB以上全部,更快

速度算法:0.85 折损,不是翻倍

多卡不会让带宽翻倍。跨卡同步和不完美的拆分要损失约 15%:

有效带宽 = 各卡带宽之和 × 0.85(同型号)

  • 2× RTX 4090:2 × 1008 × 0.85 = 有效 1714 GB/s → 70B Q4 约 30 tok/s
  • 2× RTX 3090:2 × 936 × 0.85 = 有效 1591 GB/s → 70B Q4 约 19 tok/s
  • 4× RTX 3090:4 × 936 × 0.85 = 有效 3182 GB/s → 70B Q4 约 38 tok/s(如果反正需要这个容量)

混插显卡:最慢的卡起决定作用。4090 搭 3060 能获得容量,但 3060 负责的那部分层只有 3060 级速度。别这么干。

实操清单

  • 电源:两张 350–450W 的卡需要靠谱的 1200W 以上电源;瞬时尖峰会让杂牌电源跳闸。
  • 主板:需要物理 x16 插槽,但层拆分用 PCIe 3.0 x8 电气规格就够了。
  • 散热:涡轮扇或水冷卡更适合叠放;相邻槽位的两张开放式散热 4090 会热节流。
  • 转接线可以用。 很多本地 LLM 主机用 PCIe 转接线把卡装在开放式机架上——带宽需求就是这么低。
  • 统一内存替代方案:买 4 张显卡之前,先给 96GB 的 Mac Studio 报个价。单 token 更慢,但静音、100W、零组装。

常见问题

多卡推理需要 NVLink 吗?

不需要。单用户推理用普通 PCIe 层拆分就够了——每层的权重独立读取,卡间流量很小。NVLink 是训练和高并发服务的刚需,不是一个人和 70B 模型聊天的刚需。

2×3090 比单卡 4090 级别的带宽慢多少?

我们的模型对同型号多卡施加 0.85 的带宽折损:2×936 GB/s ≈ 有效 1591 GB/s。70B Q4 模型在 2×3090 上生成约 19 tok/s,2×4090 上约 30 tok/s。

可以混用不同型号的显卡吗?

技术上可以(llama.cpp 会按比例拆分层),但最慢那张卡的带宽会成为它那部分层的瓶颈。3090 混 4060 能跑,但速度更接近慢卡。强烈建议同型号成对使用。

来源