strata-dual-gpu-layer-split/hero.jpg" alt="Strata 双卡 layer split 让速度翻倍">
一张 16GB 显卡跑 125B 是"能用",两张 16GB 做 layer split 直接翻倍到 60+ tok/s——而且不需要 NVLink,不需要双卡互连,普通 PCIe 插槽就行。更反直觉的是:给第三张卡加上去不仅没加速,反而拖慢了长 prompt。这篇文章把双卡调优的完整实测数据、配置和三个反直觉结论讲清楚。
为什么双卡能翻倍:先理解 Strata 的多卡模型
Strata 的专家分层架构下,双卡的价值不是算力叠加,是容量叠加:
- 单卡:专家缓存装不下的部分走 CPU(AVX 指令集算),速度受 CPU 性能限制
- 双卡 layer split:两张卡的专家缓存合起来覆盖 ~98% 的路由专家质量,CPU 基本退出循环
所以双卡 decode 翻倍的本质是:把"GPU + CPU 混跑"变成了"纯 GPU 跑"。
实测数据:16GB + 16GB + 47GB 内存(i9-12900KF,45W CPU 功耗限制)
社区最完整的一组对照(Strata 0.1.30,131072 上下文,KV int8,MTP 开启):
| 配置 | GPU 数 | 短 decode | 27K prefill / decode | 46K prefill / decode |
|---|---|---|---|---|
| IQ3_XXS 单卡 low-RAM 默认 | 1 | 39-50 tok/s | 1,573 tok/s | 1,060 tok/s |
| IQ3_XXS 双卡 layer split | 2 | 54-61 tok/s | 1,090 / 58 | 1,340 / 65 |
| Q2_0 双卡 layer split | 2 | 66-68 tok/s | 1,338-1,500 / 62-80 | 1,746-1,760 / 70-76 |
同 45W CPU 功耗限制下,decode 从 30-37 提到 54-61——接近翻倍。 原因:单卡跑时专家 miss 全走 CPU,45W 限制下 CPU 是瓶颈;双卡后第二张卡的缓存把 miss 基本消灭,decode 不再依赖 CPU 功耗。
另一个真实场景:2× RTX 5060 Ti 16GB(PCIe gen3 x8/x8,i9-9900KF,128GB DDR4)跑真实 coding agent,context 超过 86K tokens 时 decode 稳定在 47 tok/s,冷 prefill 860 tok/s。同一台机器 llama.cpp 最佳配置只有 9.5-12 tok/s——Strata 快 4-5 倍。
三个反直觉结论
结论一:NVLink 完全没用。 Strata 引擎刻意避免 P2P 传输——激活数据通过 pinned RAM 每 verify 窗口传一次,而不是每层传两次。2× TITAN RTX 的实测直接验证:有 NVLink 桥接(NV2 拓扑)和没有,数字一样。给消费卡买 NVLink 桥接的预算可以省了,普通 PCIe 插槽就是最优解。
结论二:第三张卡是负优化。 RTX PRO 4500 三卡测试的结论:第三张卡对 decode 零增益,反而拖慢长 prompt prefill——因为 layer split 要跨两个卡边界搬运数据,最慢的那张卡排在最后。双卡是甜蜜点,三卡以上边际收益为负。
结论三:layer split 和 low-RAM 常驻模式互斥。
--resident-experts(low-RAM 常驻)和 layer split 不能同时用,引擎会直接报错退出。小内存机器(RAM 装不下全量专家)想走双卡,需要手编配置文件:
{ "gpu": [0, 1], "layer_split": "auto" }同时去掉 --resident-experts。代价是长 prompt 时 RAM 可能吃满(47GB 机器实测 46/47 全占),跑基准可以,旁边再开别的东西就脆弱了。
双卡 layer split 的正确配置
以 2× 16GB + 128GB RAM 为例:
- 模型:IQ3_S(或 IQ3_XXS 省显存版),GGUF 分片 + MTP draft 层
--layer-split auto(引擎自动按层切分两张卡)--expert-cache auto--max-context 131072 --kv int8--spec 4 --mtp(MTP 投机解码)- 先跑
tools/calibrate.py:双卡机器 PCIe 分半(x8/x8),--pcie-frac必须校准,A3000 那台机器的教训是探测值可能低 3 倍 - CPU 功耗不受限时,i9-9900KF 比 i9-8700K 的 2-GPU decode 高约 10%——CPU 在 Strata 里不是可有可无
什么时候值得上双卡
- 16GB 卡 + 64GB 以上 RAM:值得。56-63 tok/s 的 decode 是 125B 的实用线
- 16GB 卡 + 32-47GB RAM:看场景。low-RAM 模式单卡可能更稳(双卡要手编配置且 RAM 吃满)
- 已有两张卡:直接上 layer split,比单卡跑一张弃一张强得多
- 只有一张 24GB 卡:单卡 4090 的 106 tok/s 比双 16GB 还快,先别急着买第二张
数据出处
本文数据来自 Strata 官方仓库(github.com/Niko1221/Strata)社区 benchmark issue:双卡 + low-RAM layer split 对照测试 #384、2× 5060 Ti coding agent 实战报告 #392、2× TITAN RTX NVLink 验证 #389、三卡负优化结论 #417。