# Strata 双卡 layer split 让 125B decode 翻倍：16+16 显存实测 54-61 tok/s，NVLink 没用，第三张卡是负优化

> Strata 双卡的价值不是算力叠加而是容量叠加：两张 16GB 卡的专家缓存合计覆盖 98% 路由专家，把 GPU+CPU 混跑变成纯 GPU 跑。同 45W 功耗限制下 decode 从 30-37 提到 54-61 tok/s 接近翻倍。附完整配置和三个反直觉结论：NVLink 零收益、第三张卡拖慢长 prompt、low-RAM 与 layer split 互斥需手编 json。

![Strata 双卡 layer split 让速度翻倍](/assets/articles/lcz/strata-dual-gpu-layer-split/hero.jpg)

> 一张 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 装不下全量专家）想走双卡，需要手编配置文件：

```json
{ "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。


---
来源：https://laobanclaw.top/articles/strata-dual-gpu-layer-split/（AI 军火库）
