<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[AMD3700X+X570+RTX 5060 Ti 16G ×2（PCIe 4.0 x8）跑 Strata+无审查版Qwen3.8-Flash-Next IQ3_S  128K上下文]]></title><description><![CDATA[<h1>RTX 5060 Ti 16G ×2（PCIe 4.0 x8）跑 无审查版Qwen3.8-Flash-Next IQ3_S 性能报告：单卡→双卡，槽位 ×2.1、copy 解码 144–163 tok/s（128K 上下文）</h1>
<p dir="auto">本次数据分两类：<strong>受控基准</strong>（copy 任务 / 固定长度提示）与<strong>真实负载统计</strong>（正常服务状态下 273 个请求的引擎聚合）。受控基准不挑"最好看的一次"，只取能重复的那一档；个别只有单次采样的值会在表里标出来。</p>
<p dir="auto">2026-10-23 晚在双卡上补测了一组纯复述（3 次，草稿接受率 88–94%），读数并入第 2 节。单卡沿用一条历史 copy 记录（98.4 tok/s），两者的调优状态不同，怎么对比见第 3 节。</p>
<hr />
<h2>一、硬件规格与运行前提</h2>
<p dir="auto"><strong>【核心硬件】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">部件</th>
<th style="text-align:left">规格</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">显卡（GPU）</td>
<td style="text-align:left">2× NVIDIA RTX 5060 Ti 16 GB（GB206 / sm_120，128-bit GDDR7，单卡带宽 448 GB/s）</td>
</tr>
<tr>
<td style="text-align:left">显卡链路</td>
<td style="text-align:left">各 PCIe 4.0 <strong>x8</strong>（理论 15.75 GB/s），PHB 拓扑，<strong>无 NVLink</strong></td>
</tr>
<tr>
<td style="text-align:left">处理器（CPU）</td>
<td style="text-align:left">AMD Ryzen 7 3700X（8C/16T，AVX2，无 AVX-512）</td>
</tr>
<tr>
<td style="text-align:left">系统内存</td>
<td style="text-align:left">92 GiB DDR4 双通道</td>
</tr>
<tr>
<td style="text-align:left">系统固态</td>
<td style="text-align:left">NVMe 465 GB</td>
</tr>
<tr>
<td style="text-align:left">功耗 / 温度</td>
<td style="text-align:left">生成时双卡合计约 232 W（上限 360 W），60 / 67 ℃</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>【软件与引擎栈】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:left">配置</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">操作系统</td>
<td style="text-align:left">Ubuntu 26.04.1 LTS，kernel 7.0.0-38-generic</td>
</tr>
<tr>
<td style="text-align:left">显示驱动</td>
<td style="text-align:left">595.99.02（Ubuntu 预编译签名模块，Secure Boot 保持开启）</td>
</tr>
<tr>
<td style="text-align:left">CUDA</td>
<td style="text-align:left">13.4（引擎自编译，GCC 15.2）</td>
</tr>
<tr>
<td style="text-align:left">推理引擎</td>
<td style="text-align:left">Strata <strong>engine 0.1.48.1</strong>（仓库 v0.2.3.1）</td>
</tr>
<tr>
<td style="text-align:left">量化权重</td>
<td style="text-align:left">Qwen3.8-Flash-Next <strong>IQ3_S</strong>（GSQ-RCO，约 79 GB）；当前跑 abliterated 版</td>
</tr>
<tr>
<td style="text-align:left">投机解码</td>
<td style="text-align:left">MTP，<code>--spec 4 --spec-min-p 0.5</code></td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>【关键运行参数】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:left">配置</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">上下文 / KV</td>
<td style="text-align:left"><code>--max-context 131072</code>，<code>--kv int8</code>，<code>--kv-grow</code></td>
</tr>
<tr>
<td style="text-align:left">分卡</td>
<td style="text-align:left">layer split（<code>gpu: [0,1]</code>），<code>--pipeline-windows 2</code></td>
</tr>
<tr>
<td style="text-align:left">专家缓存</td>
<td style="text-align:left">auto → <strong>8,957 槽 / 17,319 MiB</strong>（学习型 profile 预填）</td>
</tr>
<tr>
<td style="text-align:left">会话缓存</td>
<td style="text-align:left"><code>--conversation-cache-mib 6144</code> / 4 槽，<code>--vram-reserve-mib 1024</code></td>
</tr>
<tr>
<td style="text-align:left">采样</td>
<td style="text-align:left"><code>presence_penalty: 0</code>（默认 1.5 会让双卡 overlap 退化为串行）</td>
</tr>
</tbody>
</table>
<blockquote>
<p dir="auto">加卡前提：BIOS 必须开 <strong>Above 4G Decoding</strong>（否则第二张卡 BAR1 = 0M，<code>nvidia-smi -L</code> 只看到一张），顺手开 Re-Size BAR、关 CSM。</p>
</blockquote>
<hr />
<h2>二、核心实测数据汇总</h2>
<blockquote>
<p dir="auto"><strong>测试规范</strong>：decode 一律取引擎底层 timing，不用客户端壁钟；decode 主指标用 <strong>copy 任务</strong>（逐字复述，草稿接受率 88–100%），排除"这段文本好不好猜"的干扰；冷提示与热缓存分开记；关键项 2–4 次取值，单次数据在表中标 <code>n=1</code>。</p>
</blockquote>
<p dir="auto"><strong>【1. 单卡四阶段：8 GB → 16 GB → IQ3_S】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:center">阶段</th>
<th style="text-align:center">显卡</th>
<th style="text-align:left">量化 / 上下文</th>
<th style="text-align:right">专家槽位</th>
<th style="text-align:right">8K Prefill</th>
<th style="text-align:right">解码</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">A</td>
<td style="text-align:center">1×8 GB</td>
<td style="text-align:left">IQ3_XXS / 128K / KV 流式</td>
<td style="text-align:right">629</td>
<td style="text-align:right">362 tok/s</td>
<td style="text-align:right">33–35 tok/s</td>
</tr>
<tr>
<td style="text-align:center">B</td>
<td style="text-align:center">1×16 GB</td>
<td style="text-align:left">IQ3_XXS / 128K / <code>--kv-grow</code></td>
<td style="text-align:right">5,659</td>
<td style="text-align:right">1,597 tok/s</td>
<td style="text-align:right">73–76 tok/s</td>
</tr>
<tr>
<td style="text-align:center">C</td>
<td style="text-align:center">1×16 GB</td>
<td style="text-align:left">IQ3_S / 128K</td>
<td style="text-align:right">4,606</td>
<td style="text-align:right">1,544 tok/s</td>
<td style="text-align:right">98.9 tok/s（copy）</td>
</tr>
<tr>
<td style="text-align:center">D</td>
<td style="text-align:center">1×16 GB</td>
<td style="text-align:left">IQ3_S-abl / 128K / reserve 1024</td>
<td style="text-align:right">4,351</td>
<td style="text-align:right">1,524 tok/s</td>
<td style="text-align:right">98.4 tok/s（copy）</td>
</tr>
</tbody>
</table>
<p dir="auto">★ <strong>8 GB → 16 GB：槽位 ×9.0，8K Prefill ×4.4，解码 ×2.2。</strong> 全程收益最大的一次硬件改动，比后来加第二张卡明显得多。</p>
<p dir="auto">★ <strong>IQ3_XXS → IQ3_S：槽位 −19%，copy 解码 −12%，Prefill −3%。</strong> 用 12% 的速度换质量；长链 agent 任务里工具参数写错、重复发请求的次数明显下降（体感，无跑分）。</p>
<p dir="auto"><strong>【2. 双卡 vs 单卡】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">指标</th>
<th style="text-align:right">单卡 16 GB</th>
<th style="text-align:right">双卡 16 GB ×2</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">专家槽位</td>
<td style="text-align:right">4,351</td>
<td style="text-align:right"><strong>9,183</strong>（×2.11；调优后 8,957）</td>
</tr>
<tr>
<td style="text-align:left">缓存命中率</td>
<td style="text-align:right">75–80%</td>
<td style="text-align:right"><strong>93.8–97.8%</strong></td>
</tr>
<tr>
<td style="text-align:left">PCIe 缺页占比</td>
<td style="text-align:right">未记录</td>
<td style="text-align:right"><strong>1–6%</strong>（实盘）</td>
</tr>
<tr>
<td style="text-align:left">copy 解码（短提示）</td>
<td style="text-align:right">98.4（旧配置，n=1）</td>
<td style="text-align:right"><strong>144.1 / 152.5 / 162.6</strong>（n=3，中位 152.5）</td>
</tr>
<tr>
<td style="text-align:left">解码（2.3K 真实提示，热缓存）</td>
<td style="text-align:right">—</td>
<td style="text-align:right">89.3（加卡初期）→ <strong>105.6</strong>（当前）</td>
</tr>
<tr>
<td style="text-align:left">解码（7.7K 热缓存）</td>
<td style="text-align:right">—</td>
<td style="text-align:right"><strong>84.4 / 97.2 / 89.9</strong>（n=3）</td>
</tr>
<tr>
<td style="text-align:left">Prefill（2.3K 冷）</td>
<td style="text-align:right">约 900–1,100</td>
<td style="text-align:right">793</td>
</tr>
<tr>
<td style="text-align:left">Prefill（7.7K / 30.5K 冷）</td>
<td style="text-align:right">—</td>
<td style="text-align:right">1,522 / 2,516</td>
</tr>
<tr>
<td style="text-align:left">双卡利用率（生成时）</td>
<td style="text-align:right">—</td>
<td style="text-align:right">70% / 79%</td>
</tr>
</tbody>
</table>
<p dir="auto">★ <strong>加卡没有让解码翻倍，也不该期待它翻倍。</strong> 层拆分是逐 token 串行过两张卡，第二张卡不缩短关键路径；它买到的是槽位和命中率：4,351 → 9,183 槽，75–80% → 94–98%。</p>
<p dir="auto">★ <strong>同任务整体 +55%</strong>：单卡 98.4 → 双卡中位 152.5。但这 55% 里混着加卡与两项调优，不能记在卡头上——详见第三节。</p>
<p dir="auto">★ <strong>Prefill 短降长升</strong>：2.3K 从 900–1,100 掉到 793，30.5K 却能到 2,516——层拆分的交接开销在短提示上摊不平，长提示反而被流水填满。</p>
<p dir="auto"><strong>【3. 上下文档位权衡】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:center">max-context</th>
<th style="text-align:right">专家槽位</th>
<th style="text-align:right">KV 上限</th>
<th style="text-align:right">解码（2.3K 热）</th>
<th style="text-align:left">代价</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">65,536</td>
<td style="text-align:right">4,414</td>
<td style="text-align:right">0.84 GB</td>
<td style="text-align:right">—</td>
<td style="text-align:left">只多 63 槽（+1.4%），随后 67,409 token 的请求被拒</td>
</tr>
<tr>
<td style="text-align:center"><strong>131,072（当前）</strong></td>
<td style="text-align:right"><strong>8,957</strong></td>
<td style="text-align:right">1.68 GB</td>
<td style="text-align:right"><strong>105.6</strong></td>
<td style="text-align:left">日常档</td>
</tr>
<tr>
<td style="text-align:center">262,144</td>
<td style="text-align:right">8,138</td>
<td style="text-align:right">3.35 GB</td>
<td style="text-align:right">83.6</td>
<td style="text-align:left">槽位 −11%、解码 −6%，换原生 256K</td>
</tr>
</tbody>
</table>
<p dir="auto">★ 64K 试验说明：<strong>槽位不是被上下文上限卡住的</strong>。减掉一半 KV 只多 63 个槽，代价却是一个能读 67K 文档的窗口——因为会话缓存的 6 GiB 并不全在显存里，减 KV 释放不了多少 VRAM。</p>
<p dir="auto"><strong>【4. 参数逐项 A/B】</strong></p>
<p dir="auto">有效的：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">改动</th>
<th style="text-align:left">实测</th>
<th style="text-align:left">代价</th>
<th style="text-align:center">判定</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>--pipeline-windows 2</code></td>
<td style="text-align:left">利用率 45/49% → 70/79%；2.3K 83.6 → 91.6/119.1</td>
<td style="text-align:left">272 MiB、−206 槽</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left">学习型 expert profile</td>
<td style="text-align:left">命中率 82.6–85.6% → 92.6–96.4%；2.3K 91.6 → 105.6</td>
<td style="text-align:left">下次启动才生效</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left"><code>presence_penalty: 0</code></td>
<td style="text-align:left">默认 1.5 时 overlap 退化为串行</td>
<td style="text-align:left">采样风格变化</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left">会话缓存 6 GiB / 4 槽</td>
<td style="text-align:left">复用 2.5K token，首字 8.3 s → 1.0 s</td>
<td style="text-align:left">6 GiB 内存</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left"><code>--vram-reserve-mib 1024</code></td>
<td style="text-align:left">空闲 652 MiB，<code>#2065</code> 显存告警消失</td>
<td style="text-align:left">约 100 槽（2–3%）</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left"><code>--kv-grow</code></td>
<td style="text-align:left">112.6 / 1,597（KV 流式 110.6 / 1,579）</td>
<td style="text-align:left">无</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td style="text-align:left"><code>--adapt-async 1</code>（单卡）</td>
<td style="text-align:left">52.15 → 55.0（+5.5%，4/4 一致）</td>
<td style="text-align:left">双卡层拆分下被引擎关闭</td>
<td style="text-align:center"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /> / —</td>
</tr>
</tbody>
</table>
<p dir="auto">负优化（都回滚了）：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:center">#</th>
<th style="text-align:left">改动</th>
<th style="text-align:left">实测</th>
<th style="text-align:left">结论</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:left"><code>--kv k8v4</code></td>
<td style="text-align:left">Prefill <strong>−38%</strong>（561 → 347），解码不变</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">2</td>
<td style="text-align:left"><code>--ple-io ram</code></td>
<td style="text-align:left">启动 +45 s；解码 55.75 vs 55.0；<code>ulimit -l</code> 仅 8 MB，mlock 全失败</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">3</td>
<td style="text-align:left"><code>--adapt-swaps 160 --adapt-every 2</code></td>
<td style="text-align:left">54.95 vs 55.0，另出现一次 108 s 异常</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">4</td>
<td style="text-align:left"><code>STRATA_MTP_STAGE0=1</code></td>
<td style="text-align:left">7.7K 86.4/87.7 → <strong>75.6/77.1（−12%）</strong></td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">5</td>
<td style="text-align:left"><code>--max-context 65536</code> 省显存</td>
<td style="text-align:left">4,351 → 4,414（+63），67,409 token 请求被拒</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">6</td>
<td style="text-align:left"><code>--max-context 262144</code> 日常用</td>
<td style="text-align:left">槽位 −11%、解码 −6%</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--warning" style="height:1.4em;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 分场景</td>
</tr>
<tr>
<td style="text-align:center">7</td>
<td style="text-align:left"><code>--kv-grow</code> + <code>--kv-resident</code> 同开</td>
<td style="text-align:left">语义冲突，只能二选一</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">8</td>
<td style="text-align:left">期待 <code>--adapt-async</code> 在双卡生效</td>
<td style="text-align:left">层拆分下引擎直接关闭（日志有说明）</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td style="text-align:center">9</td>
<td style="text-align:left"><code>pkill -f strata</code></td>
<td style="text-align:left">模式匹配到执行它的 shell，SSH 一起断</td>
<td style="text-align:left"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>【5. 真实负载统计（273 个请求）】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">指标</th>
<th style="text-align:right">值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">请求数 / 时长</td>
<td style="text-align:right">273 / 1 小时 46 分</td>
</tr>
<tr>
<td style="text-align:left">prompt tokens</td>
<td style="text-align:right"><strong>16.1 M</strong></td>
</tr>
<tr>
<td style="text-align:left">前缀复用</td>
<td style="text-align:right"><strong>97.8%</strong>（15.7 M）</td>
</tr>
<tr>
<td style="text-align:left">平均 prompt / 输出</td>
<td style="text-align:right">58.9 K / 1.1 K</td>
</tr>
<tr>
<td style="text-align:left">持续 decode</td>
<td style="text-align:right"><strong>88.8 tok/s</strong></td>
</tr>
<tr>
<td style="text-align:left">草稿接受率</td>
<td style="text-align:right">68.9%</td>
</tr>
<tr>
<td style="text-align:left">生成时 GPU 功耗</td>
<td style="text-align:right">232 W（两卡合计）</td>
</tr>
<tr>
<td style="text-align:left">每 token 能耗</td>
<td style="text-align:right">≈ <strong>2.6 J</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">★ 平均 59K 的上下文还能跑 89 tok/s，靠的是 97.8% 前缀复用——真正需要 prefill 的只有 35 万 token。没有会话缓存，这台机器会被 prefill 拖死。</p>
<hr />
<h2>三、横向对比与差异分析</h2>
<p dir="auto"><strong>【与论坛 （2× V100 16G / IQ3_S）的横向参照】</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:center">V100 ×2</th>
<th style="text-align:center">本机：5060 Ti ×2</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">模型 / 量化</td>
<td style="text-align:center">IQ3_S</td>
<td style="text-align:center">IQ3_S-abliterated</td>
</tr>
<tr>
<td style="text-align:left">引擎版本</td>
<td style="text-align:center">0.1.44.1</td>
<td style="text-align:center">0.1.48.1</td>
</tr>
<tr>
<td style="text-align:left">解码（常规问答）</td>
<td style="text-align:center">73.5–79.6 tok/s</td>
<td style="text-align:center">89.3–105.6 tok/s（热缓存）；copy 中位 152.5</td>
</tr>
<tr>
<td style="text-align:left">100K 级 Prefill</td>
<td style="text-align:center">1,884（100K）/ 1,666（200K）</td>
<td style="text-align:center">未测 100K；30.5K 为 2,516</td>
</tr>
<tr>
<td style="text-align:left">上下文</td>
<td style="text-align:center">128K（测到 200K）</td>
<td style="text-align:center">128K（可开 256K）</td>
</tr>
<tr>
<td style="text-align:left">显存 / 卡</td>
<td style="text-align:center">16 GB ×2，PHB 无 NVLink</td>
<td style="text-align:center">16 GB ×2，PHB 无 NVLink</td>
</tr>
<tr>
<td style="text-align:left">PCIe</td>
<td style="text-align:center">3.0 x16（实测 12 GB/s）</td>
<td style="text-align:center">4.0 x8（理论 15.75 GB/s）</td>
</tr>
<tr>
<td style="text-align:left">功耗</td>
<td style="text-align:center">—</td>
<td style="text-align:center">232 W</td>
</tr>
</tbody>
</table>
<blockquote>
<p dir="auto">口径不同：本机是热缓存、对方未注明；引擎差 4 个小版本；对方测到 200K，本机没测 100K 冷 Prefill。<strong>只能当量级参照，不能当胜负</strong>。</p>
</blockquote>
<p dir="auto"><strong>【+55% 里，有多少是卡的功劳】</strong></p>
<p dir="auto">单卡留有一条历史 copy 记录：<strong>98.4 tok/s</strong>（4,351 槽、未开 pipeline / profile、提示长度未记录）。今天双卡同任务中位 <strong>152.5</strong>，相差 <strong>+55%</strong>。</p>
<p dir="auto">这 55% 混着三样东西：第二张卡、<code>--pipeline-windows 2</code>、学习型 profile。后两项在 2.3K 真实提示上分别测到 10–40% 和约 15%，但那是另一组提示，不能直接搬来做减法。</p>
<p dir="auto">所以正文只写「同任务整体 +55%」，不写「加卡 +55%」——这不是谦虚，是口径。</p>
<p dir="auto"><strong>【为什么加卡换不来翻倍：一个 token 要过两张卡】</strong></p>
<ol>
<li>decode 是逐 token 串行的：token 依次过卡 0 的层、交接、卡 1 的层，<strong>加卡不缩短关键路径</strong>，只多一次 hand-off。</li>
<li>真正的瓶颈是"专家在不在显存里"。8 GB 常驻 629 个（约 2.6%），16 GB 5,659 个（23%），双卡 9,183 个（37%）；命中率从个位数级别爬到 75–80%，再到 95%。</li>
<li>卡内带宽 448 GB/s，PCIe 4.0 x8 只有 15.75 GB/s，<strong>差 28 倍</strong>——"少走一次 PCIe"比"多一张卡算"值钱。</li>
<li>所以加卡真正兑现的地方是长上下文：30.5K 冷 Prefill 2,516 tok/s，50–60K 上下文仍能跑 89–105 tok/s。</li>
</ol>
<p dir="auto"><strong>【为什么短提示 Prefill 反而下降】</strong></p>
<p dir="auto">层拆分下，每个 8K chunk 都要跨卡交接一次；单卡时那个 +5.5% 的 <code>--adapt-async</code> 在层拆分下被引擎直接关掉。<code>prefill_stages=2</code> 是<strong>流水</strong>不是并行——短提示只有一两个 chunk，流水填不满，交接成本全暴露；30K 以上的 prompt chunk 多，流水跑起来，反而能到 2,516 tok/s。</p>
<p dir="auto"><strong>【为什么 256K 只掉 6% 解码，却不建议日常开】</strong></p>
<p dir="auto">256K 的 KV 从 1.68 GB 涨到 3.35 GB，槽位 9,183 → 8,138（−11%），解码 89.3 → 83.6（−6%）。单看数字不亏，但 6 GiB 会话缓存只放得下 1 个长会话，日常切对话会频繁重建前缀。<strong>除非你确实要读 128K 以上的文档，否则 128K 是更划算的档位。</strong></p>
<hr />
<h2>四、结论与心得</h2>
<p dir="auto"><strong>1. 双卡的真实价值不是速度，是"上下文不塌"</strong></p>
<p dir="auto">同任务整体是 98.4 → 152.5（+55%，含两项调优），但可以确定：<strong>加卡本身没有翻倍，也不该期待翻倍</strong>。真正的变化是槽位 4,351 → 8,957、命中率 75–80% → 93–97%——50–60K 上下文下仍能稳定 89–105 tok/s，这是单卡 4,351 个槽做不到的。如果你只跑短提示问答，第二张卡是性价比最差的升级；如果你的负载是 agent（平均 59K prompt），它才是从"能用"到"好用"的那一步。</p>
<p dir="auto"><strong>2. 参数符号会翻转，任何百分比先看条件</strong></p>
<p dir="auto"><code>--kv k8v4</code> 在论坛双卡 16G 的环境里是 +8～13%，在本机 sm_120 + 消费卡上是 <strong>Prefill −38%</strong>。同一个参数，换架构、换引擎小版本，符号能反过来。抄参数之前先看对方的卡型、量化、上下文长度。</p>
<p dir="auto"><strong>3. "省显存换槽位"多半是负收益</strong></p>
<p dir="auto">64K 试验只多 63 个槽（+1.4%），代价是一个 67K 文档读不了；<code>--vram-reserve-mib 1024</code> 掉 100 个槽，但换来显存不被打满——<strong>前者是亏，后者是买保险</strong>，别把两者混为一谈。</p>
<p dir="auto"><strong>4. 适用与不适用</strong></p>
<ul>
<li><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:1.4em;width:auto;vertical-align:middle" title="✅" alt="✅" /> 适合：单机跑 125B 级 MoE、要 100K+ 上下文、要给 agent 当后端（前缀复用率高）、电费敏感（2.6 J/token）。</li>
<li><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--warning" style="height:1.4em;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 勉强：想要 256K（能开，但会话缓存吃紧）、想要视觉（16 GB 下图像编码器走 CPU，每张几秒）。</li>
<li><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--x" style="height:1.4em;width:auto;vertical-align:middle" title="❌" alt="❌" /> 不适合：只追求短提示峰值、指望加卡翻倍、显存 &lt;24 GB 还想上 125B、想上 NVFP4（92 GB 内存太紧，约需 80 GB 权重常驻）。</li>
</ul>
<p dir="auto"><strong>数据说明</strong>：受控基准为单次或 2–4 次采样，decode 对草稿接受率极其敏感（同一配置 28～65 tok/s 都出现过），所以正文只用 copy 任务和标注过热缓存的数字；「—」表示未测，不是 0。真实负载数据来自 2026-10-23 的 <code>/metrics</code> 聚合。单卡只有一条历史 copy 记录（提示长度未记录），双卡为今日补测，调优状态不同，所以凡涉及"加卡快多少"的地方只给整体口径，不拆到卡上。</p>
<p dir="auto">另附一张实际跑一个小项目的实况截图以供参考。真实体感是双卡比单卡爽太多了，跑任务速度肉眼提升！<br />
<img src="https://upload.lcz.me/uploads/42a2d087-efaf-4fd3-9509-a2136b74d9c9.jpeg" alt="5c3159104864b92b9f34fa82c22d8881.jpeg" class="img-markdown  img-fluid" /></p>
<hr />
]]></description><link>https://lcz.me/topic/2544</link><generator>RSS for Node</generator><lastBuildDate>Mon, 26 Oct 2026 07:21:46 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2544.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Oct 2026 04:26:23 GMT</pubDate><ttl>60</ttl></channel></rss>