<?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[MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测]]></title><description><![CDATA[<p dir="auto">听说 halogen 不错，手里正好有之前视作鸡肋的 MS-S1，这回支棱起来了。</p>
<p dir="auto">halogen 是什么、官方怎么装、性能对比，论坛里几位老哥写得很细，不重复：</p>
<ul>
<li>Flash-Next 完整实测 <a href="https://lcz.me/topic/1659">https://lcz.me/topic/1659</a> ｜ 27B 版实测 <a href="https://lcz.me/topic/1623">https://lcz.me/topic/1623</a></li>
<li>项目 <a href="https://github.com/peonist-ai/halogen-flash-server" rel="nofollow ugc">https://github.com/peonist-ai/halogen-flash-server</a> ｜ 权重 <a href="https://huggingface.co/peonist-ai/halogen-qwen3.8-flash-next" rel="nofollow ugc">https://huggingface.co/peonist-ai/halogen-qwen3.8-flash-next</a></li>
</ul>
<p dir="auto">这篇只写我这台机器跑出来的数字和能落地的配置。</p>
<hr />
<h2>一、成绩</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>机器</td>
<td>MS-S1（Ryzen AI MAX+ 395 / Radeon 8060S / gfx1151），128G，BIOS carve 最小</td>
</tr>
<tr>
<td>系统</td>
<td>Ubuntu 24.04.3，内核 6.18.6</td>
</tr>
<tr>
<td>引擎</td>
<td>halogen-flash-server 0.8.0</td>
</tr>
<tr>
<td>权重</td>
<td>118 GiB</td>
</tr>
</tbody>
<tbody>
<tr>
<td>指标</td>
<td>官方</td>
<td>我这台</td>
</tr>
<tr>
<td>---</td>
<td>---</td>
<td>---</td>
</tr>
<tr>
<td>prefill @8K</td>
<td>~1,246 tok/s（TTFT 6.6s）</td>
<td><strong>1,309 tok/s</strong>（TTFT 6.6s）</td>
</tr>
<tr>
<td>prefill @32K</td>
<td>~1,424 tok/s（TTFT 23.0s）</td>
<td><strong>1,524 tok/s</strong>（TTFT 21.6s）</td>
</tr>
<tr>
<td>decode @32K</td>
<td>~41.7 tok/s</td>
<td><strong>39.1 tok/s</strong>（draft 命中 97/149）</td>
</tr>
<tr>
<td>冷启动</td>
<td>—</td>
<td>48 秒（其中 pin 权重 42 秒）</td>
</tr>
<tr>
<td>热启动</td>
<td>—</td>
<td>6 秒</td>
</tr>
</tbody>
</table>
<p dir="auto">官方数字是真的，照配就能到。中间踩了三个坑，都记在下面。</p>
<hr />
<h2>二、能跑起来的最终配置</h2>
<p dir="auto">内核 cmdline：</p>
<pre><code>quiet splash iommu=pt amdgpu.gttsize=126976 ttm.pages_limit=32505856
</code></pre>
<p dir="auto">启动：</p>
<pre><code class="language-bash">sudo podman run --rm --name halogen-flash \
  --device /dev/kfd --device /dev/dri --group-add keep-groups \
  --ipc=host --ulimit memlock=-1:-1 \
  -p 8731:8731 \
  -e HALOGEN_VISION_TOWER=/models/qwen38-flash-next-vision.hgn \
  -e HALOGEN_REASONING_EFFORT=medium \
  -e HALOGEN_MAX_TOKENS_DEFAULT=16384 \
  -e HALOGEN_CTX=184320 -e HALOGEN_KV_POOL_POSITIONS=184320 \
  -v /home/davidwei/models/halogen-models:/models:ro \
  ghcr.io/peonist-ai/halogen-flash-server:0.8.0
</code></pre>
<h3>坑 1：内核里那两个祖传参数（最要命）</h3>
<p dir="auto">起服务加载到 <code>preparing weights, layer 0 of 48</code> 就崩，报 <code>unspecified launch failure(719) at hipblaslt.cpp:187</code>，dmesg 里是 <code>amdgpu: ring sdma0 timeout</code> + <code>GPU reset</code> + <code>SW scheduler is used</code>。</p>
<p dir="auto">原因是我这台机器的 cmdline 里有早年加的这两个，官方配置里没有：</p>
<pre><code>amdgpu.sched_policy=2      # 强制软件调度器
amdgpu.cwsr_enable=0       # 关掉 CWSR 抢占
</code></pre>
<p dir="auto"><strong>去掉这两个，引擎 48 秒正常就绪。</strong> 对照数据：带这俩参数那次启动 GPU 挂死 4 次；去掉后 0 次。我在这上面耗的时间比下载 118 GiB 还多。</p>
<h3>坑 2：官方文档说 6.18.6 内核不能用 —— 实测能用</h3>
<p dir="auto">README 要求内核 ≥7.0，说 6.18.6 上驱动会拒绝只读映射、pin 不了权重。我实测了它说的那个调用，是成功的：</p>
<pre><code>hipHostRegister(只读文件映射, READONLY flag) -&gt; hipSuccess | no error
</code></pre>
<p dir="auto">引擎自己也打印了 <code>checkpoint: pinned 65.60 GiB in 252 range(s) in 40.3 s (1.7 GB/s)</code>。<strong>所以没必要升内核</strong>（我 apt 里 7.0.0 都备好了，白备）。</p>
<h3>坑 3：官方建议的 <code>amd_iommu=off</code> 我这台吃不下</h3>
<p dir="auto">那一项官方说值 13–16% prefill，但我这台上开了就 sdma0 硬件超时（4 次挂死 vs 保持 <code>iommu=pt</code> 的 0 次）。<strong>不靠它官方数字一样达标</strong>，所以保持 <code>iommu=pt</code>。</p>
<p dir="auto">另外 rootless podman 会直接挂住不动（<code>ulimit -l</code> 硬限制只有 15.6 GiB，而引擎要 pin 68 GiB），必须 rootful + <code>--ulimit memlock=-1:-1</code>。</p>
<hr />
<h2>三、权重下载：17 分钟</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>路线</th>
<th>速度</th>
</tr>
</thead>
<tbody>
<tr>
<td>HuggingFace 走代理</td>
<td>7.5 MB/s（单连接），并发直接挂死 0</td>
</tr>
<tr>
<td><strong><a href="http://hf-mirror.com" rel="nofollow ugc">hf-mirror.com</a> 直连 + aria2c 16 连接</strong></td>
<td><strong>122 MiB/s</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">118 GiB 十七分钟。两个坑：<code>huggingface_hub</code> 默认的 Xet 后端在代理下会<strong>静默卡死</strong>（不报错也不下载），要设 <code>HF_HUB_DISABLE_XET=1</code>；hf-mirror 会 302 到 Xet CDN，aria2 会按 blob 哈希命名文件，得显式 <code>-o</code>。</p>
<p dir="auto">只下两个文件：<code>qwen38-flash-next-w4b.hgn</code>（115.55 GiB）+ <code>qwen38-flash-next-w4b.overlay.hgn</code>（2.40 GiB，质量 sidecar，引擎自动加载，<strong>必须留</strong>）。下完对 HF API 的 sha256 校验一下，我这边三个文件全 OK。</p>
<hr />
<h2>四、内存：别信 free</h2>
<p dir="auto">引擎启动会自己算账：</p>
<pre><code>memory: 68.0 GiB weights locked + 5.1 GiB KV pool + 21.3 GiB working = 94.4 GiB in all
host memory left for everything else: 3414 contiguous 2 MiB blocks (13.3 GiB)
free(1) 会报成 79.8 GiB —— 内核把锁定的权重当成可回收缓存，实际不可回收
</code></pre>
<p dir="auto"><strong>信引擎这行，别信 <code>free</code>。</strong> 我这台 <code>free</code> 报 79 GiB available，实际可用只有 13 GiB。</p>
<p dir="auto"><strong>KV pool 一定要按需求降。</strong> 默认是 2×ctx，我一开始用默认，KV 吃了 11 GiB，宿主 free 掉到 1.2 GiB。注意 <strong>pool 不能小于 <code>HALOGEN_CTX</code></strong>，只改 pool 会被引擎夹回原值，得两个一起降（就是上面配置里的 <code>HALOGEN_CTX=184320</code> + <code>HALOGEN_KV_POOL_POSITIONS=184320</code>）。降完 KV 从 11 → <strong>5.1 GiB</strong>，重启后宿主 free 回到 <strong>5.9 GiB</strong>。</p>
<p dir="auto"><strong>顺手纠正一个流传的说法</strong>：<code>HALOGEN_MAX_TOK</code> 是单次 prefill 的<strong>分片大小</strong>（默认 32768，文档明确警告不要调），不是输出预算；输出预算是 <code>HALOGEN_MAX_TOKENS_DEFAULT</code>。另外 <strong>token 预算包含思考</strong>——预算用完不是截短回答，是 <code>finish_reason: "length"</code> + <strong>空 content</strong>（思考在 <code>reasoning_content</code> 里，大部分客户端不显示）。先看 finish_reason 再骂模型。</p>
<p dir="auto">vision 我开了也实测过（发一张纯色图问颜色，答「红色」）。<code>reasoning_effort</code> 我设 <code>medium</code>，默认的 <code>xhigh</code> 在 agent 长链任务上思考太久，体感拖沓。</p>
<hr />
<h2>五、剩下的空间正好搭个基座</h2>
<p dir="auto">94.4 GiB 常驻之后还剩十来 G，正好塞一个 embedding + 一个 whisper（Qwen3-Embedding-8B + large-v3-turbo，都跑在 GPU 上），知识库和语音识别就都有了。这样一台 MS-S1 就是个完整的个人 AI Agent 基座——Hermes 或者 DSH 直接连微信、QQ 之类，能当个人助理使了。</p>
<hr />
<h2>六、一句话总结</h2>
<p dir="auto">门槛不在装，在那几个参数。<strong>先把你 cmdline 里的祖传参数清干净</strong>，尤其 <code>amdgpu.sched_policy=2</code> 和 <code>amdgpu.cwsr_enable=0</code>。</p>
<p dir="auto">感谢论坛几位老哥的实测帖，省了我大量试错。有同机型的兄弟要抄配置，cmdline 和容器参数照上面来就行。</p>
]]></description><link>https://lcz.me/topic/1790</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 21:27:25 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/1790.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Sep 2026 01:31:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测 on Fri, 18 Sep 2026 08:53:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kos-or" aria-label="Profile: kos-or">@<bdi>kos-or</bdi></a> 不会，看这个帖子里的对比： <a href="https://lcz.me/topic/1659">https://lcz.me/topic/1659</a><br />
decode 短上下文差不多，prefill慢很多，越长越慢。<br />
halogen是闭源专门优化的模型，等他出针对27B模型的版本把，或许会好一点。不过稠密模型全参数活跃，感觉也不会好到哪里去。</p>
]]></description><link>https://lcz.me/post/19080</link><guid isPermaLink="true">https://lcz.me/post/19080</guid><dc:creator><![CDATA[davidwei0826]]></dc:creator><pubDate>Fri, 18 Sep 2026 08:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测 on Fri, 18 Sep 2026 07:02:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/kos-or" aria-label="Profile: kos-or">@<bdi>kos-or</bdi></a> 「27B-Q4 会不会更快」要看每 token 读多少权重，同机同带宽下大概率更慢。</p>
<p dir="auto">decode 的瓶颈是每生成一个 token 要把多少权重字节过一遍：</p>
<ul>
<li>Flash-Next 这个体量（118 GiB）是 MoE，每 token 只激活一部分专家，再加上投机 draft 的命中（你上面 draft 命中 97/149），摊到每 token 的读取量小；</li>
<li>27B-Q4 若是 dense，每 token 基本要把约 16GB 权重整个读一遍。</li>
</ul>
<p dir="auto">在 MS-S1 这点内存带宽（gfx1151，约 256 GB/s）下，dense 27B-Q4 的 decode 天花板就是「每 token 权重字节 ÷ 带宽」，落在十几 t/s 量级。它不会因为「Q4 更小」就翻盘——小的是比特数，不是每 token 的读取量；Q4 的收益在显存占用、精度和成本，不在 decode 速度。两者只有在激活参数量相近时，才按每 token 字节数直接比。</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hippo" aria-label="Profile: hippo">@<bdi>hippo</bdi></a> 的 GMK EVO-X2 单流 30–45、并发难看：这是带宽型 SoC 的正常表现。权重读取已经把那点带宽吃满，多流只多花 KV 读取和调度，总吞吐涨不动、单流还掉。评这类机器要看「总 tok/s」而不是「每流 tok/s」，跑个连续批再对比。</p>
]]></description><link>https://lcz.me/post/19025</link><guid isPermaLink="true">https://lcz.me/post/19025</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Fri, 18 Sep 2026 07:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测 on Fri, 18 Sep 2026 05:36:04 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/davidwei0826" aria-label="Profile: davidwei0826">@<bdi>davidwei0826</bdi></a> <a href="/post/18966">said</a>:</p>
<p dir="auto">decode @32K	~41.7 tok/s</p>
</blockquote>
<p dir="auto">QFN-3.8 這速度不錯, 請問跑Qwen3.8-27B-Q4 速度會更快嗎？</p>
]]></description><link>https://lcz.me/post/19012</link><guid isPermaLink="true">https://lcz.me/post/19012</guid><dc:creator><![CDATA[kos or]]></dc:creator><pubDate>Fri, 18 Sep 2026 05:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测 on Fri, 18 Sep 2026 04:30:39 GMT]]></title><description><![CDATA[<p dir="auto">我的GMK EVO-X2 （Ryzen AI MAX+ 395 / Radeon 8060S / gfx1151，128G，ubuntu26）部署单流速度在 30t--45t 不等，跑并发速度就很难看了</p>
]]></description><link>https://lcz.me/post/19007</link><guid isPermaLink="true">https://lcz.me/post/19007</guid><dc:creator><![CDATA[hippo]]></dc:creator><pubDate>Fri, 18 Sep 2026 04:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to MS-S1 跑 Qwen3.8-Flash-Next：halogen 落地实测 on Fri, 18 Sep 2026 04:02:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/davidwei0826" aria-label="Profile: davidwei0826">@<bdi>davidwei0826</bdi></a> 数字对得上，补两个观察：</p>
<ol>
<li>prefill @8K 1309 低于 @32K 1524，这个在官方那组也一样（1246→1424），所以不是你测错，多半是 TTFT 里的固定开销被摊薄——8K 那组每 token 要背更多启动/调度固定成本。想当基准的话，两个长度各跑 3 次取稳定值再看趋势，别用单次比。</li>
<li>decode @32K 39.1 对官方 41.7，差在 draft 命中 97/149 ≈ 65% 的接受率上；这和 tid 1510 里报的 66.7% 基本同一档，属内容相关的正常波动。冷启动 48 秒里 42 秒是 pin 权重，建议服务常驻、别频繁重启；真要压冷启动，看能不能把权重固化到大页/page cache，而不是每次重 pin。</li>
</ol>
<p dir="auto"><code>amdgpu.gttsize=126976</code> + <code>ttm.pages_limit</code> 这组对 carve 最小的机器是关键；三个坑方便的话贴出来，我整理进论坛的 halogen 笔记。</p>
]]></description><link>https://lcz.me/post/19004</link><guid isPermaLink="true">https://lcz.me/post/19004</guid><dc:creator><![CDATA[Xiaote]]></dc:creator><pubDate>Fri, 18 Sep 2026 04:02:50 GMT</pubDate></item></channel></rss>