<?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[[實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！]]></title><description><![CDATA[<blockquote>
<p dir="auto"><strong>先給結論</strong></p>
<ol>
<li>
<p dir="auto">在 Windows 上跑 Strata 的人，大概率都少了約 <strong>9% 解碼速度</strong>，而引擎在 log 里告訴你這很正常。</p>
</li>
<li>
<p dir="auto"><strong>prefill 不是一個數字，是一條 34 倍的曲線</strong>（231 到 7,962 tok/s），取決於你給它多少新 token，不取決於設定。</p>
</li>
<li>
<p dir="auto">三種格式里，<strong>解碼最快的仍是 IQ2_XS</strong>（167.8 / 130.8 / 131.5）；NVFP4 只在讀長文件時贏。</p>
</li>
<li>
<p dir="auto">這批流量 98.5% 在 60K context 以上，所以 131 是長上下文 agent 的數字，<strong>不是聊天的數字</strong>（短 context 實測 151.8）。</p>
</li>
<li>
<p dir="auto">方法學、七個被否決的參數、我推翻自己的三個結論，在留言區。</p>
</li>
</ol>
</blockquote>
<blockquote>
<h2>你今天就能做的一件事</h2>
<p dir="auto">不用改任何參數：<code>secpol.msc</code> → 本地策略 → 用戶權限分配 → 「鎖定記憶體頁」→ 加入你的帳號 → <strong>重新登入</strong>。</p>
</blockquote>
<p dir="auto"><img src="https://upload.lcz.me/uploads/1308b594-4f65-4685-8cf3-48c0fc946e5d.png" alt="post5_fig0_logline.png" class="img-markdown  img-fluid" /></p>
<p dir="auto">去你的引擎 log 搜 <code>large pages</code> 四個字。看到 <code>error 1314</code> 或 <code>using 4 KB pages</code>，你就是那個少了 9% 的人。</p>
<h2>環境</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>項目</th>
<th>內容</th>
</tr>
</thead>
<tbody>
<tr>
<td>機器</td>
<td>RTX 5090 32,607 MiB（Gen5 x16）· 9950X3D · 192 GB DDR5-5200</td>
</tr>
<tr>
<td>模型／引擎</td>
<td>Qwen3.8-Flash-Next NVFP4 pack（4.5-bit，48 層 × 512 experts）· Strata 0.1.41 · Windows</td>
</tr>
<tr>
<td>流量</td>
<td>真實 agent 請求 2,279 個，98.5% 在 60K context 以上，不是跑分腳本</td>
</tr>
<tr>
<td>環境變更</td>
<td>10/4 記憶體從 64 GB 加到 192 GB（4800 → 5200 MT/s）</td>
</tr>
</tbody>
</table>
<h2>原因</h2>
<p dir="auto">引擎開機配置一個 63.3 GiB 的 pinned arena 放專家權重，先試 2 MB 大頁，失敗就<strong>無聲</strong>退回 4 KB 頁。63.3 GiB 用 4 KB 頁是 <strong>1,660 萬個 TLB 項目</strong>，而專家權重是隨機跳著讀的，等於每次跳躍查一次頁表。源碼 <code>pinned.hpp:8-14</code> 寫得很直白：「every block of every expert matvec takes TLB misses」，同一檔也把 4 KB 退回稱為「the common case and not an error path」。Linux 用 <code>MAP_HUGETLB</code>，不需要逐帳號權限，<strong>這個坑是 Windows 獨有</strong>；repo 里兩份社群 Windows 記錄（RX 9070 XT、R9700）留著同一個 <code>error 1314</code>，所以不止我一個。</p>
<p dir="auto">重新登入不能省：token 在登入那一刻才建立。enable 那半步不用你做，引擎在 <code>VirtualAlloc</code> 之前自己呼叫 <code>AdjustTokenPrivileges</code>（<code>pinned.cu:72-84</code>），你只需要 assign。另外三個錯誤碼源碼特意分開註解（<code>pinned.cu:101-105</code>），很多人撈在一起當成同一個 bug：<strong>1314 是權限未 assign</strong>、<strong>1450 是大頁池給不出連續的 2 MB 區塊</strong>（這個才需要重開機清碎片）、<strong>87 是大小不是 2 MB 的倍數</strong>。我原本以為 1450 是我沒重開機，看完源碼才知道搞錯。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th style="text-align:right">4 KB 頁</th>
<th style="text-align:right">大頁</th>
<th style="text-align:right">差</th>
</tr>
</thead>
<tbody>
<tr>
<td>解碼平均</td>
<td style="text-align:right">118.5</td>
<td style="text-align:right">129.0</td>
<td style="text-align:right"><strong>+8.9%</strong></td>
</tr>
<tr>
<td>中位數</td>
<td style="text-align:right">114.5</td>
<td style="text-align:right">130.6</td>
<td style="text-align:right">+14.1%</td>
</tr>
<tr>
<td>最慢的那 10%</td>
<td style="text-align:right">94.6</td>
<td style="text-align:right">109.2</td>
<td style="text-align:right">+15.4%</td>
</tr>
<tr>
<td>草稿接受率</td>
<td style="text-align:right">71.3%</td>
<td style="text-align:right">72.8%</td>
<td style="text-align:right">沒變</td>
</tr>
<tr>
<td>prefill</td>
<td style="text-align:right">7,747</td>
<td style="text-align:right">7,565</td>
<td style="text-align:right">沒變</td>
</tr>
</tbody>
</table>
<p dir="auto">形狀：<strong>最慢那批改善比平均還大</strong>，正是缺頁該有的樣子；接受率沒變，所以不是投機變好，是每一輪的固定成本變低了。</p>
<h2>prefill 不是一個數字</h2>
<p dir="auto"><img src="https://upload.lcz.me/uploads/39cad9b5-05d9-499a-8bd1-fafc718765de.png" alt="post5_fig1_prefill.png" class="img-markdown  img-fluid" /></p>
<p dir="auto">我原本想報「prefill 8,000 tok/s」。那個數字是真的，但會誤導：把 2,279 個真實請求按「這次要讀多少新 token」分桶，就是上面那個樣子。<strong>看到別人報 prefill 兩三千，不要以為自己設定錯了</strong>，那多數是真實流量的正常值（prompt cache 命中 91.6%，每次其實只有幾千個新 token）；看到 8,000 也要先問對方拿多長的 prompt 量。想讓 prefill 快只有兩條路：每次讀多一點新 token，或者讓它命中 cache —— 我換了十幾個參數，同一個區間里一個都動不了。</p>
<h2>到底換哪種格式？</h2>
<p dir="auto"><img src="https://upload.lcz.me/uploads/edf5f0e9-ae25-4cfa-b50a-9ec33aa879ab.png" alt="post5_fig2_formats.png" class="img-markdown  img-fluid" /></p>
<p dir="auto">IQ3_S 那組是 2038 留言區我補的真實流量數（11,241 個請求），條件跟這篇最接近：同一張卡、同一顆 CPU、同樣 192 GB、同樣真實流量。</p>
<p dir="auto">一句話：<strong>輸出為主選 IQ2_XS</strong>，那兩成差距用設定補不回來（它權重小，同樣 32 GB 擺得下 16,640 個專家，NVFP4 只擺得下 8,586 個）；<strong>讀長文件為主選 NVFP4</strong>，全新長 prompt 它 7,962 對 IQ2_XS 受控測 128K 全量的 4,257，快近一倍，而權重是 4.5 bit 級。</p>
<p dir="auto">可以直接抄的設定：</p>
<pre><code>--spec 8   --spec-min-p 0.7   --pool-workers 15
pcie-frac 用預設 0.25   不加 split   不加 batch   GPU 0
+ Windows「鎖定記憶體頁」權限
</code></pre>
<p dir="auto">這篇承接 1228 、 1462 、 1967 、 2038 。<strong>記憶體從 64 GB 加到 192 GB 之後，2038 里「61.4 GiB 是硬限制」和 parking 那些結論的前提已經失效</strong>，請把它們當成 64 GB 時代的記錄。</p>
<h2>幫我一個忙</h2>
<p dir="auto">去你的引擎 log 搜 <code>large pages</code>，把結果貼上來：<strong>是 <code>error 1314</code>、<code>error 1450</code>，還是 <code>resident without a lock</code>？</strong> 加上你的卡和記憶體容量。</p>
<p dir="auto">我手上只有一份 Windows 樣本加兩份社群記錄。如果 1314 是普遍現象，這 9% 就是整個 Windows 社群一起漏掉的，值得往上游提。已經開過這個權限的人，也想知道你實測差多少。</p>
<blockquote>
<p dir="auto">本帖由本地全棧生成：Strata NVFP4（Qwen3.8-Flash-Next @ RTX 5090）出 token，DSH 負責讀 log、跑統計、核對數據、起草與修訂，圖由本地生成。全部數字可從引擎 log 逐項核對。有錯先係佢錯，歡迎打臉。</p>
</blockquote>
<p dir="auto">Tags： rtx5090 strata qwen-flash nvfp4 large-pages</p>
]]></description><link>https://lcz.me/topic/2247</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 12:24:21 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2247.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Oct 2026 08:49:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Mon, 12 Oct 2026 11:47:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/perter" aria-label="Profile: perter">@<bdi>perter</bdi></a> 看來成功了 有測試速度嗎</p>
]]></description><link>https://lcz.me/post/24264</link><guid isPermaLink="true">https://lcz.me/post/24264</guid><dc:creator><![CDATA[sky]]></dc:creator><pubDate>Mon, 12 Oct 2026 11:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sun, 11 Oct 2026 20:19:50 GMT]]></title><description><![CDATA[<pre><code>strata generate: expert arena: large pages are resident without a lock;
cudaHostRegister of the whole arena FAILED (out of memory); 
31 slices pinned (29 GiB); 
large pages (2097152 B)
</code></pre>
<p dir="auto">为什么我显示只有29G，这样就成功了吗？</p>
]]></description><link>https://lcz.me/post/24090</link><guid isPermaLink="true">https://lcz.me/post/24090</guid><dc:creator><![CDATA[perter]]></dc:creator><pubDate>Sun, 11 Oct 2026 20:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sun, 11 Oct 2026 15:24:36 GMT]]></title><description><![CDATA[<p dir="auto">--pool-workers 微调下 还有惊喜</p>
]]></description><link>https://lcz.me/post/24047</link><guid isPermaLink="true">https://lcz.me/post/24047</guid><dc:creator><![CDATA[Grayson Ren]]></dc:creator><pubDate>Sun, 11 Oct 2026 15:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sun, 11 Oct 2026 14:29:49 GMT]]></title><description><![CDATA[<p dir="auto">硬件：RTX 4090 24GB，256GB DDR4-2400，洋垃圾E5V4+X99<br />
模型：Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS</p>
<p dir="auto">修改前（平均值）：<br />
预填充：5078.53<br />
解码：124.986</p>
<p dir="auto">修改后（平均值）：<br />
预填充：5316.73<br />
解码：186.566</p>
<p dir="auto">预填充提升：4.69%<br />
解码提升：49.27%</p>
<p dir="auto">预填充几乎没有变化，解码速度提升近50%，这有点惊人了。</p>
]]></description><link>https://lcz.me/post/24035</link><guid isPermaLink="true">https://lcz.me/post/24035</guid><dc:creator><![CDATA[kiko glcolor]]></dc:creator><pubDate>Sun, 11 Oct 2026 14:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sun, 11 Oct 2026 04:11:01 GMT]]></title><description><![CDATA[<p dir="auto">我拿3060去測<br />
模型 : iq3_s<br />
run1<br />
• 改前 4KB（line 651-661）: 36.0<br />
• 改後大頁（剛跑，line 864-886）: 52.1</p>
<p dir="auto">run2<br />
• 改前 4KB（line 651-661）: 36.8<br />
• 改後大頁（剛跑，line 864-886）: 50.5</p>
<p dir="auto">run3<br />
• 改前 4KB（line 651-661）: 37.0<br />
• 改後大頁（剛跑，line 864-886）: 52.2</p>
<p dir="auto">run4<br />
• 改前 4KB（line 651-661）: —<br />
• 改後大頁（剛跑，line 864-886）: 51.5</p>
<p dir="auto">run5<br />
• 改前 4KB（line 651-661）: —<br />
• 改後大頁（剛跑，line 864-886）: 52.4</p>
<p dir="auto"><strong>中位數</strong><br />
• 改前 4KB（line 651-661）: 36.8<br />
• 改後大頁（剛跑，line 864-886）: 52.2</p>
<p dir="auto">提升：+41.8%（36.8 → 52.2 tok/s）</p>
<p dir="auto">對3060這工業拉機來說....這已經是神蹟了 我5090可以拿去賣了</p>
]]></description><link>https://lcz.me/post/23911</link><guid isPermaLink="true">https://lcz.me/post/23911</guid><dc:creator><![CDATA[David Chen]]></dc:creator><pubDate>Sun, 11 Oct 2026 04:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sun, 11 Oct 2026 00:04:23 GMT]]></title><description><![CDATA[<p dir="auto">补两个验证点：</p>
<p dir="auto">· Windows 上这个权限叫 SeLockMemoryPrivilege；log 里的 error 1314（ERROR_PRIVILEGE_NOT_HELD）就是没拿到锁页权限，拿到后引擎会打 using large pages。<br />
· 4KB→大页那 9% 在长上下文/大 MoE 上更明显（TLB 未命中集中在每个 expert 的 matvec），短 prompt 聊天几乎测不出来；对比时固定 ctx 和 batch 才有意义。</p>
<p dir="auto">Linux 侧对应的是 THP / MAP_HUGETLB，不是开个开关就完事，得看 allocator 是否真用上——/proc/&lt;pid&gt;/smaps 里的 AnonHugePages 可验证。</p>
]]></description><link>https://lcz.me/post/23867</link><guid isPermaLink="true">https://lcz.me/post/23867</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Sun, 11 Oct 2026 00:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sat, 10 Oct 2026 23:55:34 GMT]]></title><description><![CDATA[<p dir="auto">让ai读贴分析了一下，慢点我去试试，谢谢</p>
<p dir="auto">贴子里引的源码，我逐条查了你本地 0.1.41 的代码，全部对得上：<br />
include/strata/core/pinned.hpp:9-14 —— 原话就是「33.97 GB at 4 KB pages is 8.3 million TLB entries, which does not fit in any TLB, so every block of every expert matvec takes TLB misses」，并把 4 KB 退回称为 "the common case and not an error path"。你机器是 42.9 GB，TLB 条目只会更多。<br />
src/core/pinned.cu:101-105 —— 官方自己把三个错误码分开注释：1314 是权限未 assign、1450 是大页池碎片、87 是大小非 2 MB 倍数。贴子让你别把它们当同一个 bug，这点是照抄上游注释，说明作者真读了码。<br />
docs/DETAILS.md:510, 515 —— 官方文档本来就有 "Large pages need a new logon (#1412)" 一节，明确说 secpol.msc → 用户权限分配 → 锁定内存页，必须重新登录（token 在会话启动时才生成）。<br />
STRATA_NO_LARGEPAGES=1 这个 A/B 开关确实存在于 pinned.cu:88-89，注释写着 "same run, same boot" —— 作者做单变量验证的办法是真能跑的。<br />
所以你不是在被安利一个玄学调参，是在补一个上游已知、文档有写、但默认没帮你开的 Windows 特权。<br />
<img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=fe25256ab4a" class="not-responsive emoji emoji-android emoji--warning" style="height:1.4em;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ 一个容易踩的细节：我核对源码时发现 "resident without a lock" 不是病症，是治愈的标志——<a href="http://pinned.cu:416/444/487" rel="nofollow ugc">pinned.cu:416/444/487</a> 那句是 #779: large pages cannot be paged out: nothing to lock，只有大页成功时才会打。贴子把它和 error 1314 并列让读者去搜，容易让人误判。<br />
你今天能做的（一行命令，零风险）<br />
以管理员开 cmd：<br />
secpol.msc<br />
本地策略 → 用户权限分配 → 锁定内存页 → 加入你的账号 → 注销并重新登录（或重启）​。<br />
然后重起 Strata，再看日志那行。变成 large pages (2097152 B) 就成了。</p>
]]></description><link>https://lcz.me/post/23862</link><guid isPermaLink="true">https://lcz.me/post/23862</guid><dc:creator><![CDATA[marsempire]]></dc:creator><pubDate>Sat, 10 Oct 2026 23:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to [實測V] 你的 Windows 預設少給你 9%：用 Strata 的人請去 log 搜 large pages！ on Sat, 10 Oct 2026 09:30:35 GMT]]></title><description><![CDATA[<h2>補充：方法學、被否決的參數、以及我撤回的三個結論</h2>
<h3>我怎麼排除記憶體升速的干擾</h3>
<p dir="auto">同日我把 RAM 從 4800 換到 5200，兩件事一起變，所以 5090 那組分不開。引擎在 <code>pinned.cu:88</code> 留了一個開關 <code>STRATA_NO_LARGEPAGES=1</code>，註解寫「same run, same boot」，所以我用閒置的 5080 跑了一次<strong>同開機、同記憶體速度、只差這個變數</strong>：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th style="text-align:right">大頁開</th>
<th style="text-align:right">大頁關</th>
</tr>
</thead>
<tbody>
<tr>
<td>每輪耗時</td>
<td style="text-align:right">247.0 ms</td>
<td style="text-align:right">358.6 ms</td>
</tr>
<tr>
<td>GPU 等專家串流</td>
<td style="text-align:right">187.7</td>
<td style="text-align:right">290.8</td>
</tr>
<tr>
<td>CPU 專家池</td>
<td style="text-align:right">37.9</td>
<td style="text-align:right">40.6</td>
</tr>
<tr>
<td>prefill</td>
<td style="text-align:right">1138.90</td>
<td style="text-align:right">1128.99</td>
</tr>
</tbody>
</table>
<p dir="auto">每輪快 31.1%，差異 92% 落在「GPU 等專家串流」那項。最有力的是 <code>pool</code> 那行：關大頁那邊每層 CPU 專家只有開那邊的三分之一（1.23 對 3.92），做少三倍的事，時間還更高（40.623 對 37.910）。</p>
<p dir="auto">而 prefill 兩邊一模一樣。prefill 是整台最吃記憶體頻寬的階段，如果 4800→5200 有實質幫助它一定動 —— 它没動。所以 5090 那 8.9% 基本全部是大頁。</p>
<p dir="auto">限制：兩邊專家路由發散了（每層 CPU 專家 3.92 對 1.23），所以 −31% <strong>只取方向不取倍數</strong>；而且 5080 只有 12% 專家常駐（5090 是 35%）、x4 連結、卡本身慢，都是只取方向的理由。</p>
<h3>同一個設定的擺幅</h3>
<p dir="auto">同一個設定（spec 8、fetch 開、大頁開）一天內量五次：131.2 / 129.9 / 114.9 / 120.3 / 121.3，<strong>擺幅 11.5%</strong>。真實 agent 流量的上下文長短自己會變。所以這篇所有對比只用前後接著跑的兩組，5% 以內一律當沒發生過；跌 15% 以上的才站得住。</p>
<h3>被否決的參數（前後接著跑）</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>設定</th>
<th style="text-align:right">結果</th>
<th style="text-align:right">請求數</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>--batch 4 --batch-mtp</code></td>
<td style="text-align:right">−41%</td>
<td style="text-align:right">7</td>
</tr>
<tr>
<td><code>--pool-workers 24</code></td>
<td style="text-align:right">−24.5%</td>
<td style="text-align:right">36</td>
</tr>
<tr>
<td><code>--spec-min-p 0.5</code></td>
<td style="text-align:right">−23%</td>
<td style="text-align:right">50</td>
</tr>
<tr>
<td><code>--spec-split</code></td>
<td style="text-align:right">−3.5%（重疊項）</td>
<td style="text-align:right">56</td>
</tr>
<tr>
<td><code>--lookup-chain 3</code></td>
<td style="text-align:right">−5.7%</td>
<td style="text-align:right">30</td>
</tr>
<tr>
<td><code>--pcie-frac 0.35</code></td>
<td style="text-align:right">−0.4%</td>
<td style="text-align:right">52</td>
</tr>
<tr>
<td><code>--suffix-draft 8</code></td>
<td style="text-align:right">−3.5%</td>
<td style="text-align:right">25</td>
</tr>
</tbody>
</table>
<p dir="auto"><code>--pool-workers 24</code> 值得講：log 印「24 pool workers on logical processors 2,4,...,30」，<strong>24 個 worker 只列了 15 個邏輯核心</strong>。超出核心數的 worker 不綁核，會跟做 GPU 交接的主執行緒搶位置。想加 worker 之前先確認自己的核心數。</p>
<p dir="auto"><code>--pcie-frac</code> 從預設 0.25 提到 0.35 完全沒分別（121.3 對 120.8），接受率升 2.6 個百分點但多出來的串流成本剛好抵消 —— 平台區，作者的預設值在我這台也對，雖然我是 Gen5 x16。</p>
<p dir="auto"><code>--spec 8</code> 對 <code>--spec 6</code> 係 +4.6%，兩個唔同記憶體條件下重複出同一個倍數。這跟 2038 §9「<code>--spec 4</code> 才是最佳值」相反，但量化、記憶體容量、<code>pcie_frac</code> 都變了，兩篇都別外推到對方的條件。另外 <code>kMaxT = 8</code> 是硬上限（<code>draft_policy.hpp:24</code>、<code>verify_kernels.hpp:21</code>），構造時 <code>std::clamp</code> 就夾住，所以 <code>--spec 12</code> 靜默變回 8，不報錯、不變慢，就是沒效果。</p>
<h3>我撤回的三個結論</h3>
<p dir="auto"><strong>一、<code>--spec-split</code>「重疊本身賠 17.9%」。</strong> 早期量到 92.0 tok/s，對當時基準 −29.9%，我就當成重疊的鍋。後來連續跑三組設定、中間不隔時間重測才拆開：PCIe fetch 開對關 +7.3%（中位數 +18.7%），重疊開對關（fetch 都關）只有 −3.5%（中位數 −0.5%）。<strong>那個 −30% 大部分是流量自己變了。</strong> 一個看起來很紮實的 −30%，重測變成 −3.5%。</p>
<p dir="auto">順帶講為什麼我最後沒改引擎的碼：<code>--spec-split</code> 預設關閉並關閉 fetch 不是保守，是正確性 —— fetch 靠逐出另一個專家來收新的，逐出規則是「本視窗沒用到的才逐出」（<code>expert_source.cpp:3390</code>），而 split 把視窗切兩半，第一半看不到第二半需要誰。修法存在，但用上面的分解算，把 fetch 接回去也只是從落後 10% 變回打平。</p>
<p dir="auto"><strong>二、「流量擺幅只有 0.5%」。</strong> 我只看了頭兩次採樣（差 0.5%）就以爲這台很穩定，拿那個 0.5% 去判所有對比。實際擺幅 11.5%。連帶影響：<code>--suffix-draft 8</code>、<code>--lookup-chain 3</code>、<code>--spec 6</code> 這三項改列「還不能確定」，不是出局。</p>
<p dir="auto"><strong>三、「prefill 撞到的是電，557 W 對 600 W」。</strong> 這個是在寫這篇的過程中被推翻的。</p>
<p dir="auto">用 1 秒取樣抓了 15 分鐘、798 個樣本（同一台 5090、同一個設定、真實流量）：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>指標</th>
<th style="text-align:right">實測</th>
<th style="text-align:right">上限</th>
</tr>
</thead>
<tbody>
<tr>
<td>功率 中位</td>
<td style="text-align:right">293.3 W</td>
<td style="text-align:right">600 W</td>
</tr>
<tr>
<td>功率 p90 / p99 / 最高</td>
<td style="text-align:right">452.5 / 589.6 / <strong>592.1 W</strong></td>
<td style="text-align:right">600 W</td>
</tr>
<tr>
<td>功率超過 550 W 的樣本</td>
<td style="text-align:right">76 / 798（9.5%）</td>
<td style="text-align:right">—</td>
</tr>
<tr>
<td><strong>GPU 使用率 &gt;80% 時的功率中位</strong></td>
<td style="text-align:right"><strong>295.2 W</strong></td>
<td style="text-align:right">600 W</td>
</tr>
<tr>
<td>時脈 最低 / 中位 / 最高</td>
<td style="text-align:right">2850 / 2902 / 2940 MHz</td>
<td style="text-align:right">3090 MHz</td>
</tr>
<tr>
<td><code>sw_power_cap</code> 亮起</td>
<td style="text-align:right"><strong>0 次</strong> / 798</td>
<td style="text-align:right">—</td>
</tr>
<tr>
<td><code>hw_slowdown</code> 亮起</td>
<td style="text-align:right"><strong>0 次</strong> / 798</td>
<td style="text-align:right">—</td>
</tr>
</tbody>
</table>
<p dir="auto">形狀：<strong>功率是尖峰型的，不是平台型的。</strong> 它會瞬間衝到 592 W 貼住上限，但 GPU 忙著的時候中位數只有 295 W —— 多數時間離上限還有 300 W 的餘裕。而供電限制旗標和降速旗標，798 個樣本一次都沒亮。</p>
<p dir="auto">所以「撞到供電牆」沒有直接證據。剩下唯一的線索是時脈：最高 2940 MHz，從來沒碰到 3090 的最大加速值。這符合供電受限的樣子，但也可能只是那 15 分鐘的溫度和負載就停在這裡。正確說法是「長 prompt 那段有一道我沒證明到的牆」，不是「供電牆」。</p>
<p dir="auto">想自己抓一份，這條就夠：</p>
<pre><code>nvidia-smi --query-gpu=timestamp,power.draw,power.limit,utilization.gpu,clocks.sm,clocks_throttle_reasons.sw_power_cap,clocks_throttle_reasons.hw_slowdown --format=csv,noheader,nounits -i 0
</code></pre>
<p dir="auto">關鍵是最後兩個 <code>clocks_throttle_reasons.*</code>。只看 <code>power.draw</code> 會跟我一樣，被一個尖峰騙成一堵牆。</p>
<h3>未測項目與已知限制</h3>
<p dir="auto">長 context 的品質（YaRN accuracy）完全沒測，這篇全部是速度和容量。大頁和記憶體速度沒做最嚴格分離，5080 那組是替代證據。<code>STRATA_ADAPT_FETCH</code> 另外兩個子參數沒測，因為 <code>--pcie-frac</code> 已經是平台區，同一條曲線上其他旋鈕大概率也在平台上。</p>
<p dir="auto">三組格式的對照不是同一時期：引擎 0.1.31→0.1.41、記憶體 61.4→192 GiB、速度 6000→4800→5200、<code>pcie_frac</code> 0.55→0.25、<code>--spec</code> 4→8，而且大頁只有最後一組開了。所以那是三個完整設定的對比，不是單變量實驗；凡是我把差異歸給格式本身的地方，都是推論。</p>
<p dir="auto">流量沒按 client 分開，18081 上所有請求混在一起算。這批 98.5% 在 60K context 以上（120–200K 佔 63.6%），所以 131.5 是長上下文 agent 的數字；短 context 只有 0.4% 的樣本（10 個），方向清楚但數量不足，實測 151.8。</p>
]]></description><link>https://lcz.me/post/23751</link><guid isPermaLink="true">https://lcz.me/post/23751</guid><dc:creator><![CDATA[sky]]></dc:creator><pubDate>Sat, 10 Oct 2026 09:30:35 GMT</pubDate></item></channel></rss>