<?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[R9700 + Strata 实测：双卡 128K Prefill 3708 tok/s，兼测 IQ3_XXS / IQ3_S]]></title><description><![CDATA[<p dir="auto">最近在 X99 平台上集中测试了 Strata，主要看两个问题：</p>
<ol>
<li>单张和双张 Radeon AI PRO R9700 跑 Qwen3.8-Flash-Next GSQ-RCO GGUF，性能能到什么水平；</li>
<li>在我的平台上，IQ3_XXS 和 IQ3_S 的性能差异有多大。</li>
</ol>
<h2>先说结论</h2>
<ul>
<li><strong>单卡 R9700 + IQ3_XXS：128K Prefill 约 2168 tok/s，Decode 约 62 tok/s。</strong></li>
<li><strong>双 R9700 + Layer Split + IQ3_XXS：128K Prefill 约 3708 tok/s，双卡扩展比约 1.71×；TTFT 从约 59.6 秒降到 35.1 秒。</strong></li>
<li>双卡后 24,576 个 experts 可以全部驻留 GPU，Host Resident Expert 从 18.63 GiB 降到 0。</li>
<li><strong>在我的 X99 平台上，Layer Split 明显优于 Peer Device。</strong></li>
<li>IQ3_S 即使双卡实现 100% expert 显存驻留，128K Prefill 仍比 IQ3_XXS 慢约 15.9%。</li>
<li><strong>性能方面目前明显更适合 IQ3_XXS；质量方面，IQ3_S 和 IQ3_XXS 还没有做足够完善的高难度 Agent/Coding 对比，因此暂不下结论。</strong></li>
</ul>
<hr />
<h1>一、IQ3_XXS：单 R9700 与双 R9700</h1>
<h2>测试平台与关键参数</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>配置</th>
</tr>
</thead>
<tbody>
<tr>
<td>主板 / CPU</td>
<td>X99-TF / Xeon E5-2697A v4</td>
</tr>
<tr>
<td>内存</td>
<td>128GB DDR4</td>
</tr>
<tr>
<td>GPU</td>
<td>2 × AMD Radeon AI PRO R9700 32GB</td>
</tr>
<tr>
<td>PCIe</td>
<td>X99 / PCIe 3.0，P2P、HIP IPC 已验证</td>
</tr>
<tr>
<td>OS</td>
<td>Ubuntu 24.04 Server</td>
</tr>
<tr>
<td>Strata</td>
<td>v0.1.38，<code>99f3dbd0b21d1401b3769e0c0d963913607f380b</code></td>
</tr>
<tr>
<td>ROCm</td>
<td>10.2.0a20260914</td>
</tr>
<tr>
<td>模型</td>
<td>Qwen3.8-Flash-Next-GSQ-RCO-GGUF</td>
</tr>
<tr>
<td>主要量化</td>
<td>IQ3_XXS</td>
</tr>
<tr>
<td>关键设置</td>
<td><code>STRATA_RESIDENT_PIN=1</code>、<code>STRATA_HIP_WMMA=1</code>、<code>STRATA_SELECT_WMMA=1</code>、<code>pcie-frac=0</code>、hipBLASLt tuning OFF</td>
</tr>
</tbody>
</table>
<p dir="auto">前期探索里影响最大的是 <strong>Resident Expert Pinning</strong>：pageable resident memory 改为 pinned 后，128K Prefill 从约 <strong>1506 tok/s 提升到约 2177 tok/s</strong>。后续单、双卡测试都以这条内存路径作为基线。</p>
<h2>单卡 vs 双卡结果</h2>
<p dir="auto">￼<br />
<img src="https://upload.lcz.me/uploads/af87fcb8-b0e1-456b-bee8-1bca1a5ecbab.jpeg" alt="image.jpeg" class="img-markdown  img-fluid" /></p>
<blockquote>
<p dir="auto"><strong>最直观的结果：</strong> 15K 下双卡提升约 20%，到了 128K，Prefill 从 2168.5 tok/s 提升到 3708.4 tok/s，扩展约 <strong>1.71×</strong>。</p>
</blockquote>
<p dir="auto">128K 下 TTFT 从 <strong>59.65 秒降到 35.11 秒</strong>，少了约 24.5 秒。对于需要不断追加上下文、反复 Tool Calling 的 Agent 工作流，这个变化比单纯 Decode 快几 tok/s 更有意义。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指标</th>
<th style="text-align:right">单 R9700</th>
<th style="text-align:right">双 R9700 / Layer Split</th>
<th style="text-align:right">变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>15K Prefill</td>
<td style="text-align:right">≈2140 tok/s</td>
<td style="text-align:right"><strong>2586 tok/s</strong></td>
<td style="text-align:right">≈+20%</td>
</tr>
<tr>
<td>128K Prefill</td>
<td style="text-align:right"><strong>2168.5 tok/s</strong></td>
<td style="text-align:right"><strong>3708.4 tok/s</strong></td>
<td style="text-align:right"><strong>1.710×</strong></td>
</tr>
<tr>
<td>128K TTFT</td>
<td style="text-align:right">59.65 s</td>
<td style="text-align:right"><strong>35.11 s</strong></td>
<td style="text-align:right"><strong>-24.54 s</strong></td>
</tr>
<tr>
<td>128K Decode</td>
<td style="text-align:right">62.0 tok/s</td>
<td style="text-align:right"><strong>64.9 tok/s</strong></td>
<td style="text-align:right">基本无损</td>
</tr>
<tr>
<td>Expert Slots</td>
<td style="text-align:right">15,508</td>
<td style="text-align:right"><strong>24,576 / 24,576</strong></td>
<td style="text-align:right">100% 驻留</td>
</tr>
<tr>
<td>GPU Expert</td>
<td style="text-align:right">≈25.15 GiB</td>
<td style="text-align:right"><strong>39.96 GiB</strong></td>
<td style="text-align:right">↑</td>
</tr>
<tr>
<td>Host Resident Expert</td>
<td style="text-align:right">18.63 GiB</td>
<td style="text-align:right"><strong>0 GiB</strong></td>
<td style="text-align:right"><strong>完全消除</strong></td>
</tr>
<tr>
<td>Host Staging</td>
<td style="text-align:right">≈1.5 s</td>
<td style="text-align:right"><strong>0</strong></td>
<td style="text-align:right">消失</td>
</tr>
<tr>
<td>Wait Copy</td>
<td style="text-align:right">≈1.8 s</td>
<td style="text-align:right"><strong>0</strong></td>
<td style="text-align:right">消失</td>
</tr>
<tr>
<td>128K Multi-Needle</td>
<td style="text-align:right">5/5 PASS</td>
<td style="text-align:right">5/5 PASS</td>
<td style="text-align:right">一致</td>
</tr>
<tr>
<td>C1 / C2 / C3</td>
<td style="text-align:right">PASS</td>
<td style="text-align:right">PASS</td>
<td style="text-align:right">一致</td>
</tr>
</tbody>
</table>
<p dir="auto">当前 Layer Split 为 <strong>0–20 层 / 21–47 层</strong>。</p>
<p dir="auto">这个 1.71× 不能简单理解成传统 TP2 的扩展效率。更准确地说，收益来自三部分叠加：<strong>更多 experts 驻留 GPU、Host 搬运基本消失、Layer Split 带来的跨卡流水执行</strong>。</p>
<h2>Layer Split 与 Peer Device</h2>
<p dir="auto">两种双卡模式都做了实际测试：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>模式</th>
<th style="text-align:right">128K Prefill</th>
<th style="text-align:right">相对单卡</th>
</tr>
</thead>
<tbody>
<tr>
<td>Single</td>
<td style="text-align:right">2170.3 tok/s</td>
<td style="text-align:right">1.000×</td>
</tr>
<tr>
<td><strong>Layer Split</strong></td>
<td style="text-align:right"><strong>3699.3 tok/s</strong></td>
<td style="text-align:right"><strong>1.704×</strong></td>
</tr>
<tr>
<td>Peer Device</td>
<td style="text-align:right">1546.1 tok/s</td>
<td style="text-align:right">0.712×</td>
</tr>
</tbody>
</table>
<p dir="auto">Peer Device 在我的平台上反而比单卡慢，因此后续双卡路线直接选择 <strong>Layer Split</strong>。</p>
<hr />
<h1>二、IQ3_XXS 与 IQ3_S 对比</h1>
<p dir="auto">这里主要想验证一个问题：<strong>IQ3_S 单卡更慢，是因为它占用更大、更多 experts 落到 Host，还是当前 Strata / ROCm / gfx1201 路径下本身就有更高的执行成本？</strong></p>
<h2>单卡与双卡的 128K 性能</h2>
<p dir="auto">￼<br />
<img src="https://upload.lcz.me/uploads/680e0459-ccce-405c-ae8a-0f55e6253884.jpeg" alt="image.jpeg" class="img-markdown  img-fluid" /></p>
<p dir="auto">单卡时：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指标</th>
<th style="text-align:right">IQ3_XXS</th>
<th style="text-align:right">IQ3_S</th>
<th style="text-align:right">IQ3_S 相对变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>15K Prefill</td>
<td style="text-align:right">2140.2 tok/s</td>
<td style="text-align:right">1833.9 tok/s</td>
<td style="text-align:right">-14.31%</td>
</tr>
<tr>
<td>128K Prefill</td>
<td style="text-align:right"><strong>2168.5 tok/s</strong></td>
<td style="text-align:right"><strong>1863.7 tok/s</strong></td>
<td style="text-align:right"><strong>-14.05%</strong></td>
</tr>
<tr>
<td>128K TTFT</td>
<td style="text-align:right">59.65 s</td>
<td style="text-align:right">69.28 s</td>
<td style="text-align:right">+16.14%</td>
</tr>
<tr>
<td>128K Decode</td>
<td style="text-align:right">62.0 tok/s</td>
<td style="text-align:right">57.0 tok/s</td>
<td style="text-align:right">-8.06%</td>
</tr>
<tr>
<td>Host Resident Expert</td>
<td style="text-align:right">18.63 GiB</td>
<td style="text-align:right"><strong>25.91 GiB</strong></td>
<td style="text-align:right">IQ3_S 更高</td>
</tr>
</tbody>
</table>
<p dir="auto">单卡时 IQ3_S 的 Host Resident 更大，因此一开始的假设是：<strong>双卡如果把 IQ3_S 的 experts 全部放进显存，性能差距也许会明显缩小。</strong></p>
<p dir="auto">但双卡结果没有支持这个假设：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指标</th>
<th style="text-align:right">Dual IQ3_XXS</th>
<th style="text-align:right">Dual IQ3_S</th>
<th style="text-align:right">IQ3_S 相对变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>15K Prefill</td>
<td style="text-align:right">2586.1 tok/s</td>
<td style="text-align:right">2182.0 tok/s</td>
<td style="text-align:right">-15.63%</td>
</tr>
<tr>
<td>128K Prefill</td>
<td style="text-align:right"><strong>3708.4 tok/s</strong></td>
<td style="text-align:right"><strong>3119.3 tok/s</strong></td>
<td style="text-align:right"><strong>-15.89%</strong></td>
</tr>
<tr>
<td>128K TTFT</td>
<td style="text-align:right"><strong>35.11 s</strong></td>
<td style="text-align:right"><strong>41.68 s</strong></td>
<td style="text-align:right"><strong>+18.71%</strong></td>
</tr>
<tr>
<td>128K Decode</td>
<td style="text-align:right">64.9 tok/s</td>
<td style="text-align:right">62.1 tok/s</td>
<td style="text-align:right">-4.39%</td>
</tr>
<tr>
<td>Dual Scaling</td>
<td style="text-align:right"><strong>1.710×</strong></td>
<td style="text-align:right"><strong>1.674×</strong></td>
<td style="text-align:right">IQ3_S 略低</td>
</tr>
<tr>
<td>Expert Slots</td>
<td style="text-align:right">24,576 / 24,576</td>
<td style="text-align:right">24,576 / 24,576</td>
<td style="text-align:right">均 100%</td>
</tr>
<tr>
<td>GPU Expert</td>
<td style="text-align:right">39.96 GiB</td>
<td style="text-align:right">46.83 GiB</td>
<td style="text-align:right">+6.87 GiB</td>
</tr>
<tr>
<td>Host Resident</td>
<td style="text-align:right">0 GiB</td>
<td style="text-align:right">0 GiB</td>
<td style="text-align:right">一致</td>
</tr>
<tr>
<td>128K 最小可用显存</td>
<td style="text-align:right">1.6 / 9.2 GiB</td>
<td style="text-align:right">3.2 / 3.2 GiB</td>
<td style="text-align:right">均安全</td>
</tr>
</tbody>
</table>
<p dir="auto">双卡已经把两种量化的 experts 都全部放进 GPU，IQ3_S 仍然慢约 <strong>15.9%</strong>。</p>
<h2>Timing：差距主要出现在哪里</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>128K Timing</th>
<th style="text-align:right">IQ3_XXS</th>
<th style="text-align:right">IQ3_S</th>
<th style="text-align:right">变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>Expert Dequant</td>
<td style="text-align:right">1495 ms</td>
<td style="text-align:right"><strong>7274 ms</strong></td>
<td style="text-align:right"><strong>+386.6%</strong></td>
</tr>
<tr>
<td>Expert MMQ</td>
<td style="text-align:right">7324 ms</td>
<td style="text-align:right"><strong>9564 ms</strong></td>
<td style="text-align:right"><strong>+30.6%</strong></td>
</tr>
<tr>
<td>Dense GEMM</td>
<td style="text-align:right">5745 ms</td>
<td style="text-align:right"><strong>7015 ms</strong></td>
<td style="text-align:right"><strong>+22.1%</strong></td>
</tr>
<tr>
<td>Wait Copy</td>
<td style="text-align:right">0 ms</td>
<td style="text-align:right">100 ms</td>
<td style="text-align:right">基本可忽略</td>
</tr>
</tbody>
</table>
<p dir="auto">因此目前可以确认的是：<strong>在 Strata v0.1.38 + ROCm 10.2 + gfx1201 这套实现下，IQ3_S 的 GPU-side execution path 存在明显更高的执行成本。</strong></p>
<p dir="auto">至于更底层究竟主要来自 quant format、packing、dequant、MMQ kernel、memory traffic 还是其他因素，目前没有继续做 kernel profiling，所以这里不做过度归因。</p>
<hr />
<h1>关于 IQ3_XXS 和 IQ3_S 的质量</h1>
<p dir="auto">这一部分目前测试还不够完善，我不打算下确定结论。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th style="text-align:right">IQ3_XXS</th>
<th style="text-align:right">IQ3_S</th>
</tr>
</thead>
<tbody>
<tr>
<td>Agent 任务</td>
<td style="text-align:right">7/8</td>
<td style="text-align:right">7/8</td>
</tr>
<tr>
<td>C1 Strict JSON</td>
<td style="text-align:right">PASS</td>
<td style="text-align:right">PASS</td>
</tr>
<tr>
<td>C2 Tool Calling</td>
<td style="text-align:right">PASS</td>
<td style="text-align:right">PASS</td>
</tr>
<tr>
<td>C3 Python Coding</td>
<td style="text-align:right">PASS</td>
<td style="text-align:right">PASS</td>
</tr>
<tr>
<td>128K Multi-Needle</td>
<td style="text-align:right">5/5</td>
<td style="text-align:right">5/5</td>
</tr>
</tbody>
</table>
<p dir="auto">这些结果只能说明：<strong>目前没有测出 IQ3_S 明显的质量优势。</strong></p>
<p dir="auto">但 8 个 Agent 任务样本太少，也不足以证明两者质量相同。真正可能拉开差距的，应该是复杂代码修复、多文件依赖、长链路推理、失败后的自我修正、复杂 Tool Calling、长上下文约束保持等更困难任务。</p>
<p dir="auto">所以目前我的结论只限定在：</p>
<blockquote>
<p dir="auto"><strong>性能：IQ3_XXS 明显更好。</strong><br />
<strong>质量：证据不足，暂不判断 IQ3_S 是否更好。</strong></p>
</blockquote>
<p dir="auto">以后如果继续比较质量，会单独设计更大的高难度 Agent / Coding 测试集。</p>
<hr />
<h1>最终结果</h1>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>项目</th>
<th>当前结果</th>
</tr>
</thead>
<tbody>
<tr>
<td>单卡性能量化</td>
<td><strong>IQ3_XXS</strong></td>
</tr>
<tr>
<td>双卡性能量化</td>
<td><strong>IQ3_XXS</strong></td>
</tr>
<tr>
<td>双卡模式</td>
<td><strong>Layer Split</strong></td>
</tr>
<tr>
<td>单卡 128K Prefill</td>
<td><strong>≈2168.5 tok/s</strong></td>
</tr>
<tr>
<td>双卡 128K Prefill</td>
<td><strong>≈3708.4 tok/s</strong></td>
</tr>
<tr>
<td>双卡 128K TTFT</td>
<td><strong>≈35.11 s</strong></td>
</tr>
<tr>
<td>双卡 128K Decode</td>
<td><strong>≈64.9 tok/s</strong></td>
</tr>
<tr>
<td>双卡扩展比</td>
<td><strong>≈1.71×</strong></td>
</tr>
<tr>
<td>双卡 Expert Residency</td>
<td><strong>24,576 / 24,576</strong></td>
</tr>
<tr>
<td>Host Resident</td>
<td><strong>0 GiB</strong></td>
</tr>
<tr>
<td>Peer Device</td>
<td><strong>当前平台不推荐</strong></td>
</tr>
<tr>
<td>IQ3_S 性能</td>
<td><strong>明显慢于 IQ3_XXS</strong></td>
</tr>
<tr>
<td>IQ3_S vs IQ3_XXS 质量</td>
<td><strong>目前证据不足，暂不下结论</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">从这次测试来看，X99 虽然只有 PCIe 3.0，但在双 R9700、P2P / HIP IPC 正常、使用 Strata Layer Split 的情况下，128K Prefill 仍然从约 <strong>2168 tok/s 提升到 3708 tok/s</strong>。</p>
<p dir="auto">对 Flash-Next 这种 expert residency 很重要的模型来说，第二张卡的价值并不只是增加算力，更重要的是把单卡放不下的 experts 从 Host 搬进 GPU。</p>
<blockquote>
<p dir="auto">以上数据仅代表我的 X99 + 双 R9700 + Strata v0.1.38 + ROCm 10.2 环境。不同 PCIe 拓扑、驱动、Strata 版本、ROCm 版本以及量化文件，结果都可能不同。</p>
</blockquote>
]]></description><link>https://lcz.me/topic/2069</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 14:26:56 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2069.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Oct 2026 19:46:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to R9700 + Strata 实测：双卡 128K Prefill 3708 tok/s，兼测 IQ3_XXS / IQ3_S on Sat, 03 Oct 2026 21:33:52 GMT]]></title><description><![CDATA[<p dir="auto">坐等双卡进一步优化</p>
<p dir="auto">r9700含金量还在进一步上升</p>
]]></description><link>https://lcz.me/post/22167</link><guid isPermaLink="true">https://lcz.me/post/22167</guid><dc:creator><![CDATA[johnnybegood]]></dc:creator><pubDate>Sat, 03 Oct 2026 21:33:52 GMT</pubDate></item></channel></rss>