Strata 多显卡进阶:Layer Split层分割让双卡流水线推理再快18-20%
Strata 多显卡进阶:Layer Split层分割让双卡流水线推理再快18-20%
Strata 是一个让 125B 参数 MoE 大模型 Qwen3.8-Flash-Next 跑在 8GB+ 显存显卡上的本地推理引擎,Windows / Linux 一键安装,并自带 OpenAI / Anthropic 兼容 API。它的进阶能力 Layer Split(层分割)可以把同一张 PC 里的多张 NVIDIA 显卡串成流水线:一张卡算前半段网络层,另一张卡算后半段,prompt 读取速度在双卡下提升 18-20%,解码速度与最快单卡持平甚至更高。
什么是 Layer Split?一次说清"层分割流水线"
很多人听说"多卡"第一反应是张量并行——把一层矩阵切成几块分给几张卡,需要 NVLink 高速互联。Strata 的 Layer Split 走的是另一条更亲民的路:流水线(层)并行。
把模型 48 层连续切成若干段:第一张卡负责第 0 到 K-1 层,第二张卡从第 K 层接手,以此类推;最后一张卡额外承担输出头和草稿(MTP)层。一个 token 每经过一个"校验窗口"才在卡间传递一次(几百 KB,走钉住内存),而不是一层传一次。
关键红利:每张卡只为自己负责的层维护专家缓存。两张卡的专家缓存容量大约等于单卡的两倍。对 Coder 模型,16 GB + 24 GB 的一对卡几乎能装下全部热门专家——解码阶段就几乎不再碰 CPU 内存池,这正是速度的来源。
而且不需要 NVLink、不需要点对点直连,插在 x4 甚至 x1 插槽的老卡都能用。
为什么 prompt 提速最明显?
prompt(你发过去的长文档、代码、历史对话)是被切成块、逐块流过各张卡的:第一张卡读完第 c 块时,第二张卡已经在读第 c+1 块——天然重叠,互不等待。实测双卡把 16K-28K 的 prompt 读取速度拉高 +18-20%,而解码速度与最快单卡打平、写代码场景还领先 4-7%。
一键配置:什么都不用敲,安装向导自动选卡
你不需要输入任何命令。 运行 START-HERE.bat(Linux 下 ./setup.sh),它会列出你的 NVIDIA 显卡,并逐张说明 Strata 能否使用它:
Your NVIDIA GPUs:
GPU 0: NVIDIA GeForce RTX 5080, 16 GB VRAM - can be used
GPU 1: NVIDIA GeForce GTX 1080 Ti, 11 GB VRAM - not supported ...
GPU 2: NVIDIA GeForce RTX 3090, 24 GB VRAM - can be used
1) GPU 0 (RTX 5080, 16 GB) + GPU 2 (RTX 3090, 24 GB) together (recommended)
2) GPU 2 (RTX 3090, 24 GB) only
Which GPUs? [1]:
有两张以上能分担模型的卡时,向导会推荐"两张最佳组合"(新一代卡自动成为主卡),直接回车即可。单卡装的模型下次启动也会只问一次要不要双卡共用,选择会被记住。
手动指定显卡与切分点
想自己决定时,可以加参数(--gpus 的编号即 nvidia-smi 里的编号,第一张是主卡):
| 参数 | 含义 |
|---|---|
--gpus 0,2 | 这两张卡一起用,选择会被记住 |
--gpus all | 所有能分担模型的卡全部用上 |
--gpu 0 | 本次启动只用这一张卡 |
--layer-split auto | (默认)自动挑切分点;也可手写如 18 或 16,32 |
也可以直接改现有配置(strata-*.json)再重启:
"gpu": [0, 2],
"layer_split": "auto"
哪些显卡组合不被支持?
- 比 RTX 20 系列更老的卡(计算能力低于 7.5,如 GTX 10 系);
- 显存不足 8 GB 的卡——多卡模式下每张卡都要放一份稠密权重和 prompt 缓冲区;
- AMD / Intel 显卡,以及 NVIDIA 与它们混插。
完整规则见官方文档 docs/MULTI_GPU.md。
auto 模式是如何"算"出最佳切分点的?
--layer-split auto 会对每一种切法打分(双卡/三卡时全枚举),预测一次解码窗口的耗时,选最快的那个。它的估算依据:
- 每层耗时:按 SM 数量 × 频率估算(例如 RTX 5080 约 0.33 ms/层);
- 缓存内容:每张卡负责层里的热门专家,按热度排序填充;
- 专家路由分布:按 (r+1)^-1.2 拟合实测命中率;
- 未命中惩罚:装不下的专家要回 CPU 算,按拟合值计入代价。
启动日志会直接打印结论,一目了然:
strata generate: layer split auto: K=19 - the caches hold 11767 of 12288 profiled pairs
strata serve: layer split: layers 0-18 (CUDA0), 19-47 (CUDA1), one hand-off per window
在 RTX 5080 + RTX 3090 上,auto 选了 K=22,prompt 速度落在手工调优最优值(K=26)的 0-12% 以内,解码持平——普通用户放心选 auto 就对了。
实测数据:双卡到底快多少?
社区实测环境:Ryzen 9 9950X3D / 62 GB DDR5 / Windows 11,模型为 Coder(IQ1_M 原生包,48 层 × 256 专家),32K 上下文。原始数据见 bench/results/2026-09-29-layer-split/README.md:
| 配置 | Prompt 16K / 28K (tok/s) | 解码 story / code (tok/s) |
|---|---|---|
| 5080 单卡 | 1,726 / 1,970 | 83-87 / 88-105 |
| 5080 + 3090,最佳切分 (K=26) | 2,039 / 2,357 | 84 / 110 |
| 5080 + 3090,auto (K=22) | 2,037 / 2,073 | 80 / 109 |
三个结论:
- Prompt 收益最大(+18-20%):两张卡各读各的层,读下一块时不互等;
- 解码与最快单卡打平、写代码反超:当两张卡的缓存合计能装下几乎全部被路由到的专家后,瓶颈变成每层 GPU 时间;
- 正确性有保证:单卡结果与 0.1.20 版本逐字节一致,卡间交接本身是比特级精确的。
切分点 K 怎么选?扫一遍你就懂了
K 即"主卡负责前 K 层"。实测 K 从 18 扫到 32:
| 切分 K | Prompt 28K (tok/s) | 解码 code (tok/s) | 专家命中率 |
|---|---|---|---|
| 18 | 1,694 | 103.8 | 99.9% |
| 22 | 2,074 | 106.4 | 99.8% |
| 26 | 2,357 | 109.7 | 99.3% |
| 28 | 2,287 | 112.5 | 99.0% |
| 32 | 2,063 | 108.7 | 98% |
规律很直白:K 太小,快卡(5080)活儿少、慢卡(3090)层数多,拖后腿;K 太大,快卡缓存装不下自己的热门专家,命中率下滑。对这套卡 + Coder,甜区在 K=26-28。
要不要再加第三张卡?
大多数情况下不要。 实测把 RTX 2080 Ti 作为第三张卡加入 5080 + 3090:解码掉到 68 / 90 tok/s,比双卡还慢——每多一张卡,每个窗口就多一次层间往返。只有当"两张快卡装不下模型大部分路由专家"(更大的模型)时,第三张卡才回本。
另外记住一条排序原则:最快的卡放第一位,auto 会按缓存容量给它分尽量多的层。
双卡下哪些功能依旧可用?
很多人担心分卡会砍掉功能——实测答案是:主流功能全部跨卡可用(详见 bench/results/2026-09-29-layer-split-limits/README.md):
- 🖼️ 图片输入(
--vision):每张卡各自维护图像位置表; - ⚡ 控制向量 / 实验性 speed projection:每张卡各存一份表,按请求同时开关;
- 🌊 KV 流式(
--kv-resident):每张卡流式传输自己会话的 KV; - 💾 prompt 中途检查点(
--prompt-cache-every):每张卡读完自己的块就存下那部分。
小结
| 你想知道的 | 答案 |
|---|---|
| 需要 NVLink 吗? | 不需要,x4 / x1 插槽都行 |
| 配置麻烦吗? | 向导自动选卡 + auto 自动切分,零命令 |
| 提升多少? | Prompt +18-20%,解码持平、写代码 +4-7% |
| 显卡门槛? | 每张 RTX 20 系及以上、≥8 GB 显存 |
| 卡越多越好? | 不是,装下专家的两张够快,慢卡反而拖速 |
如果你有 64 GB 内存和两张 RTX 20 系以上的卡,git clone https://gitcode.com/gh_mirrors/strata11/Strata 后直接双击 START-HERE.bat,回车接受推荐组合,就能白拿这 18-20% 的 prompt 提速。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)