<?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[求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化]]></title><description><![CDATA[<p dir="auto">装了一台4卡r9700的服务器，之前用vllm跑的qwen3.6 27b fp8，然后用hermes通过飞书接入，提供给同事使用。之前感觉速度还不错，前两天改成qwen3.8 27b fp8之后，刚起来用opwebui直接聊天感觉速度还行，用hermes就感觉慢，特别是一多人共用之后，速度拉胯到都没法用了，看日志都不到10个token了。求助各位大佬能怎么优化一下么。启动命令也是deepseek调整了好几次，好像效果都差不多</p>
<pre><code>docker run -d --name qwen38_27B --restart unless-stopped --network host \
  --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 64g \
  -e HIP_VISIBLE_DEVICES=0,1,2,3 \
  -e GPU_MAX_HW_QUEUES=1 \
  -e NCCL_PROTO=Simple \
  -v /home/models:/models \
  vllm/vllm-openai-rocm:latest \
  --model /models/Qwen/Qwen3.8-27B-FP8 \
  --served-model-name Qwen3.8-27B-FP8 \
  --host 0.0.0.0 --port 8000 \
  --tensor-parallel-size 4 \
  --max-num-seqs 24 \                      # ⭐ 修正为 24
  --max-model-len 180000 \
  --max-num-batched-tokens 24576 \        # ⭐ 保留 24576
  --dtype auto \
  --gpu-memory-utilization 0.95 \
  --kv-cache-dtype fp8 \
  --trust-remote-code \
  --quantization fp8 \
  --enable-chunked-prefill \
  --enable-prefix-caching \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --reasoning-parser qwen3 \
  --speculative-config '{"method":"mtp","num_speculative_tokens":1}'
</code></pre>
<p dir="auto">按deepseek给的命令，启动后测试结果好像还可以，但是hermes一工作，就慢到不行了。</p>
<pre><code>============ Serving Benchmark Result ============
Successful requests:                     100
Failed requests:                         0
Maximum request concurrency:             10
Request rate configured (RPS):           10.00
Benchmark duration (s):                  265.96
Total input tokens:                      204800
Total generated tokens:                  51200
Request throughput (req/s):              0.38
Output token throughput (tok/s):         192.51
Peak output token throughput (tok/s):    180.00
Peak concurrent requests:                14.00
Total token throughput (tok/s):          962.56
---------------Time to First Token----------------
Mean TTFT (ms):                          1712.86
Median TTFT (ms):                        1349.10
P99 TTFT (ms):                           4440.84
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          48.11
Median TPOT (ms):                        43.79
P99 TPOT (ms):                           94.28
---------------Inter-token Latency----------------
Mean ITL (ms):                           93.44
Median ITL (ms):                         57.48
P99 ITL (ms):                            1047.97
---------------Speculative Decoding---------------
Acceptance rate (%):                     94.33
Acceptance length:                       1.94
Drafts:                                  26526
Draft tokens:                            26526
Accepted tokens:                         25021
Per-position acceptance (%):
  Position 0:                            94.33
==================================================
</code></pre>
<p dir="auto">还有各位大神，我这配置能跑qwen3.8 flash next么，另一台电脑还有一块r9700，需要的话还能再加一块</p>
]]></description><link>https://lcz.me/topic/1402</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 15:22:06 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/1402.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Aug 2026 12:44:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Mon, 31 Aug 2026 02:50:56 GMT]]></title><description><![CDATA[<p dir="auto">感谢各位大佬，最后用<a href="https://lcz.me/topic/1363/%E5%8F%8C%E5%8D%A17900xtx-vllm-qwen3.8-%E7%88%BD%E7%8E%A9agent-pp1600-tg-160-%E9%99%84-mtp-7900xtx%E5%85%A8%E6%94%BB%E7%95%A5/14">双卡7900xtx VLLM qwen3.8 爽玩agent pp1600 tg 160+ (附 mtp/7900xtx全攻略）</a>这个帖子里大佬给的<a href="https://hub.docker.com/r/capicua25x/vllm-rocm-rdna4%EF%BC%8C%E7%94%A8%E8%BF%99%E4%B8%AA%E9%95%9C%E5%83%8F%E6%88%90%E5%8A%9F%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%E4%BA%86" rel="nofollow ugc">https://hub.docker.com/r/capicua25x/vllm-rocm-rdna4，用这个镜像成功解决问题了</a></p>
]]></description><link>https://lcz.me/post/15049</link><guid isPermaLink="true">https://lcz.me/post/15049</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Mon, 31 Aug 2026 02:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sun, 30 Aug 2026 05:38:28 GMT]]></title><description><![CDATA[<p dir="auto">发帖之前给AI整理下，让AI整理成Markdown，发大段无格式内容对论坛危害极大，警告一次，下次直接封号。<br />
我已代为修正，下不为例。</p>
]]></description><link>https://lcz.me/post/14897</link><guid isPermaLink="true">https://lcz.me/post/14897</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Sun, 30 Aug 2026 05:38:28 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sun, 30 Aug 2026 04:08:21 GMT]]></title><description><![CDATA[<p dir="auto">差距有，但没想象中大：FP8 基本是无损档（27B FP8 体积约 28GB，业界当"近无损"用，通用评分掉 0.5% 以内）；4bit（Q4_K_M / IQ4_XS 约 16GB）大约掉 2~4%。实际使用区别集中在"精确性"场景：代码生成、长文本引用、严格格式输出这类，4bit 偶尔会错引用符号或格式，FP8 基本不会。</p>
<p dir="auto">你的情况：4×R9700 每卡 32G，跑 27B FP8 本来就是正解，tensor 并行下每卡权重才 7G，KV 余量很足。4bit 的真正意义是"用质量换容量/并发"——想每卡独立跑一个实例、或把上下文拉得极长时再降不迟。如果当前 FP8 已经跑顺了，没必要为省显存降级。</p>
]]></description><link>https://lcz.me/post/14886</link><guid isPermaLink="true">https://lcz.me/post/14886</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Sun, 30 Aug 2026 04:08:21 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sun, 30 Aug 2026 02:15:30 GMT]]></title><description><![CDATA[<p dir="auto">谢谢各位大佬，看来可以试试每个卡跑一个4bit量化的27b模型。就是不知道4位量化和现在的fp8会不会能力差的比较大</p>
]]></description><link>https://lcz.me/post/14875</link><guid isPermaLink="true">https://lcz.me/post/14875</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Sun, 30 Aug 2026 02:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 16:46:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/gk20082000" aria-label="Profile: gk20082000">@<bdi>gk20082000</bdi></a>  你這個內存有點少 看有沒有機會加到256以上吧，可以用但不太夠<br />
我這邊可以分享一下雙卡 VMML遇到的問題<br />
如果沒特別需求，會建議參考 <a href="https://github.com/mattbucci/2x-R9700-RDNA4-GFX1201-sglang-inference" rel="nofollow ugc">https://github.com/mattbucci/2x-R9700-RDNA4-GFX1201-sglang-inference</a><br />
或者是四張卡分別跑一個27B 可以做到50 t/s 以上</p>
<h1>[實測] R9700 (gfx1201) 雙卡別再試 vLLM tensor-parallel — 附四卡該怎麼配</h1>
<p dir="auto">看到有人問四卡要怎麼處理,先把我們踩過的坑跟數字放上來,省下你重走一遍。</p>
<h2>TL;DR</h2>
<ul>
<li><strong>vLLM TP/PP 在 gfx1201 VM上跑不起來</strong>,裸機也一樣,不是你設定錯</li>
<li>就算修好,<strong>卡越多越慢</strong> —— 有人 8 卡 TP=8 跑到 3.9 tok/s,輸我們 2 卡的 16</li>
<li><strong>四卡的正解是四個獨立實例,不是把一個模型切四份</strong></li>
</ul>
<hr />
<h2>症狀</h2>
<p dir="auto">雙 R9700,<code>--tensor-parallel-size 2</code>:</p>
<pre><code>NCCL error: unhandled cuda error
HIP failure 'the operation cannot be performed in the present state'
  at .../rccl/build/hipify/src/enqueue.cc:1926
</code></pre>
<p dir="auto">關鍵細節:<strong><code>ncclCommInitRank</code> 是成功的</strong>(tuning index 7 有對到 gfx1201),<br />
死在<strong>後面實際 kernel enqueue</strong>。所以不是「認不到卡」或「拓樸不通」。</p>
<h2>試過但沒用的(全部同一個死法)</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>#</th>
<th>配方</th>
<th>結果</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>kyuz0 image + P2P 全開,不加任何 disable</td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=2fb7360d8c6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td>2</td>
<td>官方 <code>vllm-openai-rocm:v0.20.2</code> + <code>NCCL_PROTO=Simple</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=2fb7360d8c6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td>3</td>
<td><code>NCCL_P2P_DISABLE=1</code> + <code>NCCL_SHM_DISABLE=0</code> + <code>HSA_ENABLE_SDMA=0</code> + <code>HSA_FORCE_FINE_GRAIN_PCIE=1</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=2fb7360d8c6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
<tr>
<td>4</td>
<td>上述 + guest kernel <code>iommu=pt</code></td>
<td><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=2fb7360d8c6" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /></td>
</tr>
</tbody>
</table>
<p dir="auto">跟 image 版本、傳輸方式(P2P/SHM)、SDMA、fine-grain、IOMMU <strong>全部無關</strong>。</p>
<h2>這不是虛擬化造成的</h2>
<p dir="auto">Puget Systems 的<strong>裸機</strong>實測明確寫:</p>
<blockquote>
<p dir="auto">stock vLLM cannot serve a model across two R9700s in either multi-GPU mode</p>
</blockquote>
<p dir="auto"><strong>TP 和 PP 都不行</strong> —— vLLM v1 引擎不管哪種平行模式,distributed init<br />
都會做一次 RCCL all-reduce。</p>
<h2>最貴的一課:修好 P2P 沒有用</h2>
<p dir="auto">我們花了不少工夫把 VM passthrough 的 ReBAR 修好<br />
(BAR0 從 256MB resize 到 32GB + OVMF <code>X-PciMmio64Mb</code> 加大 MMIO 窗口)。<br />
修完之後 <code>rocm-smi --showtopo</code> 確認兩卡 PCIE 直連,<br />
RCCL log 也看得到 <code>via P2P/IPC</code> + <code>Connected all rings</code>。</p>
<p dir="auto"><strong>然後 TP=2 死在同一行 <code>enqueue.cc</code>。</strong></p>
<blockquote>
<p dir="auto">P2P/ReBAR 修復是<strong>必要但不充分</strong>:它讓 RCCL 通道建立成功了,<br />
但過不了 collective kernel launch。</p>
</blockquote>
<p dir="auto">(ReBAR 對 llama.cpp 是純加分,卡間傳輸現在走直連 —— 那部分值得修。)</p>
<hr />
<h2>數字:為什麼「卡越多越慢」</h2>
<p dir="auto">同一顆 Qwen3.8-27B,llama.cpp + Vulkan,ReBAR 已修復:</p>
<p dir="auto"><strong>單卡(模型裝得下)</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>TTFT</td>
<td><strong>0.1s</strong></td>
</tr>
<tr>
<td>解碼</td>
<td><strong>64.6 tok/s</strong>(三次重測 70.1 / 69.3 / 69.0)</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>雙卡 split-mode 對照(llama-bench)</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>split-mode</th>
<th>pp512</th>
<th>tg64</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><code>layer</code></strong></td>
<td><strong>1001 t/s</strong></td>
<td><strong>16.4 t/s</strong></td>
</tr>
<tr>
<td><code>row</code></td>
<td>906</td>
<td>15.9</td>
</tr>
<tr>
<td><code>tensor</code>(真 TP)</td>
<td>507</td>
<td><strong>13.7</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">llama.cpp 自己也有 TP 型的切法,<strong>三種都能跑,但 layer 全面最快</strong> ——<br />
PCIe x8 的卡間延遲吃掉了 TP 的並行收益。</p>
<p dir="auto"><strong>八卡 TP=8(Level1Techs,裸機 Gen5 x16,自製修補 RCCL 2.30.4)</strong></p>
<pre><code>~3.9 tok/s
</code></pre>
<p dir="auto">43 層 × 86 次同步點被 PCIe 延遲拖垮。他們的硬體條件(裸機直插)<br />
<strong>比我們的 VM passthrough 好</strong>,8 張卡還是打不過我們 2 張的 16.4。</p>
<h3>把三組放在一起</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>配置</th>
<th>解碼</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>1 卡,模型完整放進去</strong></td>
<td><strong>64.6 tok/s</strong></td>
</tr>
<tr>
<td>2 卡 layer-split</td>
<td>16.4</td>
</tr>
<tr>
<td>2 卡 tensor-split</td>
<td>13.7</td>
</tr>
<tr>
<td>8 卡 TP=8(修補 RCCL)</td>
<td><strong>3.9</strong></td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>在這個硬體上,layer split 勝過 tensor parallel 是物理規律,不是軟體沒調好。</strong><br />
而「不切」又勝過「切」—— 差了 4 倍。</p>
<hr />
<h2>所以四卡該怎麼配?</h2>
<p dir="auto"><strong>先問一句:你的模型放得進單張 32GB 嗎?</strong></p>
<h3>放得下 → 四個獨立實例,不要切</h3>
<pre><code>card0  llama-server  instance A ─┐
card1  llama-server  instance B ─┤
card2  llama-server  instance C ─┼─→ 前面掛一個 OpenAI 相容閘道做負載平衡
card3  llama-server  instance D ─┘
</code></pre>
<ul>
<li>每個實例都是<strong>滿速 ~65 tok/s</strong></li>
<li><strong>四個併發槽</strong>,聚合吞吐 ~260 tok/s</li>
<li>一張卡掛掉只損失 1/4,不是整組死</li>
<li><strong>完全不碰 RCCL</strong></li>
</ul>
<p dir="auto">我們兩卡就是這樣跑的(前面掛 LiteLLM 做別名與 key 管理),<br />
Qwen3.8-27B Q4_K_XL 只有 16.4 GiB,單卡綽綽有餘。</p>
<h3>放不下 → 用<strong>剛好夠</strong>的卡數做 layer-split,不是全部下去</h3>
<p dir="auto">一個 60GB 的模型,用 <strong>2 張</strong> layer-split,剩下 2 張跑第二個實例 ——<br />
<strong>不要 4 張切一份</strong>。每多一張卡就多一組同步點,而收益是零。</p>
<pre><code class="language-bash"># llama.cpp,不經 RCCL
llama-server -m model.gguf --split-mode layer -ngl 99 ...
# 預設就會自動分卡,不需要 tensor-split
</code></pre>
<h3>真的非要 vLLM TP 不可 → 兩條路,都不推薦</h3>
<ol>
<li><strong>GPU 改裸機直跑</strong>(VM passthrough 這條已確認無解)</li>
<li><strong>自己編譯修補版 RCCL 2.30.4</strong><br />
(修掉 TP≥2 觸發的 DDA IPC 初始化路徑問題,官方 nightly 沒這個補丁)<br />
配 <code>NCCL_P2P_DISABLE=1</code> + <strong><code>NCCL_SHM_DISABLE=0</code></strong><br />
—— 注意是保留 SHM,跟多數人試的「兩個都關」相反</li>
</ol>
<p dir="auto">但看上面那張表:<strong>修好之後大概率比 llama.cpp 慢。</strong> 工程成本換來更慢的東西。</p>
<hr />
<h2>追蹤中</h2>
<p dir="auto"><a href="https://github.com/ROCm/rocm-systems/issues/5480" rel="nofollow ugc">ROCm/rocm-systems#5480</a><br />
—— 標題就是「RCCL deadlock during vLLM TP=2 inference on dual R9700 (gfx1201/RDNA4)」,<br />
同代 Ryzen X3D + 2× R9700,跟我們幾乎同一台機器。</p>
<p dir="auto">查證時狀態:<strong>Open,已指派 @tcgu-amd,無官方回應/時程</strong>。<br />
確認是 RCCL 2.27.3 → 2.27.7 之間的回歸性 bug。<br />
回報者自己試 <code>NCCL_P2P_DISABLE=1</code> <strong>無效</strong><br />
(跟 Level1Techs 8 卡帖裡有效的 workaround 不同 —— 那是另一組版本組合,不能直接套)。</p>
<p dir="auto"><strong>要問雙卡/四卡 vLLM TP 有沒有進展,先去看 #5480 狀態變了沒。</strong></p>
<h2>觀察名單:SGLang</h2>
<p dir="auto">有人在<strong>裸機</strong>雙 R9700 跑通 TP=2<br />
(<a href="https://github.com/mattbucci/2x-R9700-RDNA4-GFX1201-sglang-inference" rel="nofollow ugc">mattbucci/2x-R9700-RDNA4-GFX1201-sglang-inference</a><br />
—— SGLang v0.5.16 + 69 個自製 patch + RCCL 2.27.7 釘版)。</p>
<p dir="auto"><strong>裸機 only</strong>,而且 TP=2 重啟會間歇 RCCL coredump(作者自己掛 watchdog),<br />
不適合當常駐後端。他的高速主要來自 <strong>MoE 模型</strong>(A3B 每 token 只動約 3B 參數);<br />
<strong>dense 27B 在 gfx1201 填不滿 CU</strong> 是他親測結論 —— 跟我們的實測一致。</p>
<hr />
<p dir="auto">環境:PVE + VM passthrough,2× AMD Radeon AI PRO R9700 (gfx1201),<br />
ROCm 7.14,llama.cpp + Vulkan (<code>kyuz0/amd-r9700-toolboxes:vulkan-radv</code>)。</p>
]]></description><link>https://lcz.me/post/14835</link><guid isPermaLink="true">https://lcz.me/post/14835</guid><dc:creator><![CDATA[CS6]]></dc:creator><pubDate>Sat, 29 Aug 2026 16:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 15:41:34 GMT]]></title><description><![CDATA[<p dir="auto">(APIServer pid=1) INFO:     127.0.0.1:51838 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     127.0.0.1:51840 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     127.0.0.1:51826 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     127.0.0.1:51860 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     127.0.0.1:51848 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     127.0.0.1:51872 - "GET /metrics HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO 08-29 15:29:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 60.3 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 75.5%<br />
(APIServer pid=1) INFO 08-29 15:29:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.81, Accepted throughput: 27.10 tokens/s, Drafted throughput: 33.50 tokens/s, Accepted: 271 tokens, Drafted: 335 tokens, Per-position acceptance rate: 0.809, Avg Draft acceptance rate: 80.9%<br />
(APIServer pid=1) INFO 08-29 15:29:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 75.5%<br />
(APIServer pid=1) INFO:     100.69.44.242:43230 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO 08-29 15:31:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 331.0 tokens/s, Avg generation throughput: 4.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.1%, Prefix cache hit rate: 77.1%<br />
(APIServer pid=1) INFO 08-29 15:31:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.70, Accepted throughput: 0.16 tokens/s, Drafted throughput: 0.23 tokens/s, Accepted: 16 tokens, Drafted: 23 tokens, Per-position acceptance rate: 0.696, Avg Draft acceptance rate: 69.6%<br />
(APIServer pid=1) INFO 08-29 15:31:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 5.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.1%, Prefix cache hit rate: 77.1%<br />
(APIServer pid=1) INFO 08-29 15:31:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.73, Accepted throughput: 2.20 tokens/s, Drafted throughput: 3.00 tokens/s, Accepted: 22 tokens, Drafted: 30 tokens, Per-position acceptance rate: 0.733, Avg Draft acceptance rate: 73.3%<br />
(APIServer pid=1) INFO:     100.69.44.242:42916 - "GET /v1/models HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     100.69.44.242:42922 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request<br />
(APIServer pid=1) INFO:     100.69.44.242:42924 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO 08-29 15:31:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 2.9 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 77.1%<br />
(APIServer pid=1) INFO 08-29 15:31:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 2.00, Accepted throughput: 1.50 tokens/s, Drafted throughput: 1.50 tokens/s, Accepted: 15 tokens, Drafted: 15 tokens, Per-position acceptance rate: 1.000, Avg Draft acceptance rate: 100.0%<br />
(APIServer pid=1) INFO 08-29 15:31:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 1610.9 tokens/s, Avg generation throughput: 0.4 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:31:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.50, Accepted throughput: 0.10 tokens/s, Drafted throughput: 0.20 tokens/s, Accepted: 1 tokens, Drafted: 2 tokens, Per-position acceptance rate: 0.500, Avg Draft acceptance rate: 50.0%<br />
(APIServer pid=1) INFO 08-29 15:31:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:31:54 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.73, Accepted throughput: 1.60 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 16 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.727, Avg Draft acceptance rate: 72.7%<br />
(APIServer pid=1) INFO 08-29 15:32:04 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:04 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.78, Accepted throughput: 1.80 tokens/s, Drafted throughput: 2.30 tokens/s, Accepted: 18 tokens, Drafted: 23 tokens, Per-position acceptance rate: 0.783, Avg Draft acceptance rate: 78.3%<br />
(APIServer pid=1) INFO 08-29 15:32:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.86, Accepted throughput: 1.90 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 19 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.864, Avg Draft acceptance rate: 86.4%<br />
(APIServer pid=1) INFO 08-29 15:32:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.4 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 2.00, Accepted throughput: 2.20 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 22 tokens, Drafted: 22 tokens, Per-position acceptance rate: 1.000, Avg Draft acceptance rate: 100.0%<br />
(APIServer pid=1) INFO 08-29 15:32:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.82, Accepted throughput: 1.80 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 18 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.818, Avg Draft acceptance rate: 81.8%<br />
(APIServer pid=1) INFO 08-29 15:32:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.73, Accepted throughput: 1.60 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 16 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.727, Avg Draft acceptance rate: 72.7%<br />
(APIServer pid=1) INFO 08-29 15:32:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:32:54 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.59, Accepted throughput: 1.30 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 13 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.591, Avg Draft acceptance rate: 59.1%<br />
(APIServer pid=1) INFO 08-29 15:33:04 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:33:04 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.67, Accepted throughput: 1.40 tokens/s, Drafted throughput: 2.10 tokens/s, Accepted: 14 tokens, Drafted: 21 tokens, Per-position acceptance rate: 0.667, Avg Draft acceptance rate: 66.7%<br />
(APIServer pid=1) INFO 08-29 15:33:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:33:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.73, Accepted throughput: 1.60 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 16 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.727, Avg Draft acceptance rate: 72.7%<br />
(APIServer pid=1) INFO:     100.69.44.242:47770 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request<br />
(APIServer pid=1) INFO:     100.69.44.242:47780 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO 08-29 15:33:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.8 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 76.0%<br />
(APIServer pid=1) INFO 08-29 15:33:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.90, Accepted throughput: 1.80 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 18 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.900, Avg Draft acceptance rate: 90.0%<br />
(APIServer pid=1) INFO 08-29 15:33:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 299.8 tokens/s, Avg generation throughput: 2.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.7%, Prefix cache hit rate: 78.1%<br />
(APIServer pid=1) INFO 08-29 15:33:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.59, Accepted throughput: 1.00 tokens/s, Drafted throughput: 1.70 tokens/s, Accepted: 10 tokens, Drafted: 17 tokens, Per-position acceptance rate: 0.588, Avg Draft acceptance rate: 58.8%<br />
(APIServer pid=1) INFO 08-29 15:33:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.7%, Prefix cache hit rate: 78.1%<br />
(APIServer pid=1) INFO 08-29 15:33:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.86, Accepted throughput: 1.90 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 19 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.864, Avg Draft acceptance rate: 86.4%<br />
(APIServer pid=1) INFO 08-29 15:33:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.7%, Prefix cache hit rate: 78.1%<br />
(APIServer pid=1) INFO 08-29 15:33:54 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.48, Accepted throughput: 1.00 tokens/s, Drafted throughput: 2.10 tokens/s, Accepted: 10 tokens, Drafted: 21 tokens, Per-position acceptance rate: 0.476, Avg Draft acceptance rate: 47.6%<br />
(APIServer pid=1) INFO 08-29 15:34:04 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.7%, Prefix cache hit rate: 78.1%<br />
(APIServer pid=1) INFO 08-29 15:34:04 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.86, Accepted throughput: 1.90 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 19 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.864, Avg Draft acceptance rate: 86.4%<br />
(APIServer pid=1) INFO 08-29 15:34:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 2.8%, Prefix cache hit rate: 78.1%<br />
(APIServer pid=1) INFO 08-29 15:34:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.95, Accepted throughput: 2.10 tokens/s, Drafted throughput: 2.20 tokens/s, Accepted: 21 tokens, Drafted: 22 tokens, Per-position acceptance rate: 0.955, Avg Draft acceptance rate: 95.5%<br />
(APIServer pid=1) INFO:     100.69.44.242:49454 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request<br />
(APIServer pid=1) INFO:     100.69.44.242:49458 - "POST /v1/chat/completions HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO 08-29 15:34:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 693.1 tokens/s, Avg generation throughput: 1.2 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:34:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 2.00, Accepted throughput: 0.60 tokens/s, Drafted throughput: 0.60 tokens/s, Accepted: 6 tokens, Drafted: 6 tokens, Per-position acceptance rate: 1.000, Avg Draft acceptance rate: 100.0%<br />
(APIServer pid=1) INFO 08-29 15:34:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:34:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.67, Accepted throughput: 1.40 tokens/s, Drafted throughput: 2.10 tokens/s, Accepted: 14 tokens, Drafted: 21 tokens, Per-position acceptance rate: 0.667, Avg Draft acceptance rate: 66.7%<br />
(APIServer pid=1) INFO 08-29 15:34:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:34:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.55, Accepted throughput: 1.10 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 11 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.550, Avg Draft acceptance rate: 55.0%<br />
(APIServer pid=1) INFO 08-29 15:34:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 2.9 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:34:54 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.45, Accepted throughput: 0.90 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 9 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.450, Avg Draft acceptance rate: 45.0%<br />
(APIServer pid=1) INFO 08-29 15:35:04 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.8 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:04 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.90, Accepted throughput: 1.80 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 18 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.900, Avg Draft acceptance rate: 90.0%<br />
(APIServer pid=1) INFO 08-29 15:35:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.75, Accepted throughput: 1.50 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 15 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.750, Avg Draft acceptance rate: 75.0%<br />
(APIServer pid=1) INFO 08-29 15:35:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.75, Accepted throughput: 1.50 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 15 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.750, Avg Draft acceptance rate: 75.0%<br />
(APIServer pid=1) INFO 08-29 15:35:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.65, Accepted throughput: 1.30 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 13 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.650, Avg Draft acceptance rate: 65.0%<br />
(APIServer pid=1) INFO 08-29 15:35:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.75, Accepted throughput: 1.50 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 15 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.750, Avg Draft acceptance rate: 75.0%<br />
(APIServer pid=1) INFO 08-29 15:35:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:35:54 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.50, Accepted throughput: 1.00 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 10 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.500, Avg Draft acceptance rate: 50.0%<br />
(APIServer pid=1) INFO 08-29 15:36:04 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.1 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:36:04 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.55, Accepted throughput: 1.10 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 11 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.550, Avg Draft acceptance rate: 55.0%<br />
(APIServer pid=1) INFO 08-29 15:36:14 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.3 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:36:14 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.65, Accepted throughput: 1.30 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 13 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.650, Avg Draft acceptance rate: 65.0%<br />
(APIServer pid=1) INFO 08-29 15:36:24 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 3.5 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:36:24 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 1.75, Accepted throughput: 1.50 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 15 tokens, Drafted: 20 tokens, Per-position acceptance rate: 0.750, Avg Draft acceptance rate: 75.0%<br />
(APIServer pid=1) INFO 08-29 15:36:34 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 4.0 tokens/s, Running: 1 reqs, Waiting: 0 reqs, GPU KV cache usage: 3.2%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:36:34 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 2.00, Accepted throughput: 2.00 tokens/s, Drafted throughput: 2.00 tokens/s, Accepted: 20 tokens, Drafted: 20 tokens, Per-position acceptance rate: 1.000, Avg Draft acceptance rate: 100.0%<br />
(APIServer pid=1) INFO:     100.69.44.242:56230 - "GET /v1/models HTTP/1.1" 200 OK<br />
(APIServer pid=1) INFO:     100.69.44.242:56236 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request<br />
(APIServer pid=1) INFO 08-29 15:36:44 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.4 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 79.2%<br />
(APIServer pid=1) INFO 08-29 15:36:44 [<a href="http://metrics.py:120" rel="nofollow ugc">metrics.py:120</a>] SpecDecoding metrics: Mean acceptance length: 2.00, Accepted throughput: 0.20 tokens/s, Drafted throughput: 0.20 tokens/s, Accepted: 2 tokens, Drafted: 2 tokens, Per-position acceptance rate: 1.000, Avg Draft acceptance rate: 100.0%<br />
(APIServer pid=1) INFO 08-29 15:36:54 [<a href="http://loggers.py:310" rel="nofollow ugc">loggers.py:310</a>] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 79.2%<br />
还是很慢</p>
]]></description><link>https://lcz.me/post/14821</link><guid isPermaLink="true">https://lcz.me/post/14821</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Sat, 29 Aug 2026 15:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 14:22:00 GMT]]></title><description><![CDATA[<p dir="auto">之前的启动日志里，有{"log":"(Worker_TP1 pid=728) WARNING 08-27 12:59:09 [fp8_utils.py:852] Using default W8A8 Block FP8 kernel config. Performance might be sub-optimal! Config file not found at /usr/local/lib/python3.12/dist-packages/vllm/model_executor/layers/quantization/utils/configs/N=3584,K=5120,device_name=AMD_Radeon_R9700,dtype=fp8_w8a8,block_shape=[128,128].json\n","stream":"stdout","time":"2026-08-27T12:59:09.814899751Z"}，这个是之前启动的日志里面的，应该是在FP8下运行了吧</p>
]]></description><link>https://lcz.me/post/14805</link><guid isPermaLink="true">https://lcz.me/post/14805</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Sat, 29 Aug 2026 14:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 13:08:41 GMT]]></title><description><![CDATA[<p dir="auto">楼上把主因说透了：你这负载是 prefill 瓶颈，不是 decode。补几个能直接落地的：</p>
<p dir="auto"><strong>1. 为什么 3.6 换 3.8 明显变慢（架构原因，不是参数）</strong><br />
Qwen3.8-27B 是 hybrid Mamba+Attention：只有 16 层 attention 需要缓存 KV，其余是 mamba state。prefix caching 在这类模型上有已知坑（零命中/白算），等于 Hermes 每回合整包重发上下文时 prefill 全量重算，缓存基本白开；3.6 是纯 attention，cache 还能命中一段。所以"3.6 还行、3.8 拉胯"大概率不是调参能救的，是模型架构对 agent 重 prefill 场景更不友好。</p>
<p dir="auto"><strong>2. 两个数先查</strong></p>
<ul>
<li>curl localhost:8000/metrics | grep num_preemptions_total——只要在涨，就是 180K 长上下文把 KV 池挤爆被踢重算，把 --max-model-len 砍到 65536/98304、--max-num-seqs 降到 8-12（楼上已说，我同意）。</li>
<li>fp8 是否真生效：看 vLLM 启动日志有没有 FP8 kernel 选择（gfx1201 的 FP8 走 AITER/半官方路径，不对会静默回退 BF16，权重和 KV 白翻倍）。</li>
</ul>
<p dir="auto"><strong>3. Flash-Next：别上，更别为它加卡</strong><br />
Flash-Next 176B，FP8 权重就要 ~176GB，4 卡 128G、加第 5 卡 160G 都装不下；只能跑 IQ4_XS ~100GB 的量化。但你这场景是 agent 多用户、每回合 3-6 万 token 重 prefill，176B 的 prefill 比 27B 慢一个数量级，加卡只会更惨。27B 就是这个负载的甜点；真想提质量，试 35B 级模型更实际。</p>
<p dir="auto"><strong>4. 并发才是多人变慢的主开关</strong><br />
24 个 seq 槽对 agent"占坑型"会话太多：5 个同事的飞书会话能占满长上下文坑位互相挤。降到 8-12 之外，飞书接入端也限制同时活跃的会话数，比调 vLLM 参数立竿见影。</p>
<p dir="auto">改完把一轮 Hermes 的实际 prompt 长度（日志里的 input tokens）贴出来，能帮你把 KV 预算算死。</p>
]]></description><link>https://lcz.me/post/14790</link><guid isPermaLink="true">https://lcz.me/post/14790</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Sat, 29 Aug 2026 13:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 13:07:52 GMT]]></title><description><![CDATA[<p dir="auto">有分析投标文件是否雷同的需求，所以设置了180k，太大了么？有点奇怪的是qwen3.6这个参数设200k都可以啊，为什么3.8就不行了。vllm-openai-rocm:latest是前天拉的最新的，显示vllm版本是0.28.0，这个怎么判断是不是原生fp8？用bf16的我试了试，结果都一样</p>
]]></description><link>https://lcz.me/post/14789</link><guid isPermaLink="true">https://lcz.me/post/14789</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Sat, 29 Aug 2026 13:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 12:57:43 GMT]]></title><description><![CDATA[<p dir="auto">问题不在解码速度，在 prefill。你 benchmark 测的是 output（192 tok/s），但 Hermes 那种 agent 负载是「每回合都把上下文整包重送」，经常 3-6 万 token 丢进去，输出才几百 token——全耗在 prefill 上。所以单开 opwebui 短对话还行，一接 agent 就崩，多人挤一起直接个位数。</p>
<p dir="auto">再叠一层：你 <code>--max-model-len 180000</code> 是预分配，不是弹性。这模型是 hybrid-attention，只有 16 层缓存 KV，FP8 约 32KiB/token，180000×24≈134GiB，超过你 4×32=128GiB 的池子。长上下文一挤，vLLM 就 preemption（踢出去重算），这就是掉到个位数的直接原因。</p>
<p dir="auto">按影响改几个：</p>
<ol>
<li><code>--max-model-len</code> 降到 65536 或 98304 就够，别 180000。KV 启动时就分配好，调低等于把池子腾给并发。</li>
<li>日志里<code>num_preemptions_total</code>在涨就把<code>--max-num-seqs</code>降到 8-12。agent 会话是占坑的，不是快查询。</li>
<li><code>--max-num-batched-tokens</code> 24576 偏大偏吞吐，多人求快降到 8192-16384。</li>
<li><code>--enable-prefix-caching</code>先关掉量一次。hybrid 模型的 prefix cache 有已知坑（零命中/白算），agent 最需要它却常不中用。</li>
<li>MTP 你 94% accept 说明能跑，但多人吞吐帮助有限，反而多一层 verify，可关可留。</li>
<li>确认下你 <code>vllm-openai-rocm:latest</code> 是不是真原生 FP8，还是偷偷反量化回 FP32。是的话加 <code>VLLM_ROCM_USE_AITER=0</code> 跑，顺便 <code>python3 -c "import aiter.ops.triton.utils.arch_info as a; a._ARCH_TO_DEVICE['gfx1201']='MI350X'"</code>。</li>
</ol>
<p dir="auto">量测看 <code>curl localhost:8000/metrics | grep -E "num_preemptions_total|spec_decode_num_accepted_tokens_total"</code>，改一处重启对照。把一轮 Hermes 的 prompt 长度贴出来更好判断。</p>
]]></description><link>https://lcz.me/post/14787</link><guid isPermaLink="true">https://lcz.me/post/14787</guid><dc:creator><![CDATA[王池川]]></dc:creator><pubDate>Sat, 29 Aug 2026 12:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to 求助4卡r9700 用vllm跑qwen3.8 27b fp8怎么优化 on Sat, 29 Aug 2026 12:57:19 GMT]]></title><description><![CDATA[<p dir="auto">整机硬件是技嘉G292-Z20服务器,CPU 是AMD 7K62，内存128G</p>
]]></description><link>https://lcz.me/post/14786</link><guid isPermaLink="true">https://lcz.me/post/14786</guid><dc:creator><![CDATA[gk20082000]]></dc:creator><pubDate>Sat, 29 Aug 2026 12:57:19 GMT</pubDate></item></channel></rss>