<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术 on Leon Li · 李梁</title><link>https://notes.liliang.me/categories/%E6%8A%80%E6%9C%AF/</link><description>Recent content in 技术 on Leon Li · 李梁</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 27 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://notes.liliang.me/categories/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>用 4 张 V100 跑 Qwen3.8-Flash-Next</title><link>https://notes.liliang.me/posts/2026-09-27-qwen38-flash-next-4x-v100/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><guid>https://notes.liliang.me/posts/2026-09-27-qwen38-flash-next-4x-v100/</guid><description>&lt;p&gt;家里的 Local AI 服务器是一台 Supermicro 双路 AMD EPYC 7K62：96 核、512GB ECC 内存。这篇用到其中 4 张 V100 PCIe 32GB，卡间没有 NVLink；推理服务跑在分配了 48 vCPU、160GiB 内存的 LXC 容器里。最近它常驻运行 &lt;a href="https://huggingface.co/Qwen/Qwen3.8-Flash-Next"&gt;Qwen3.8-Flash-Next&lt;/a&gt; 的 Uncensored 版本，平时给我的 Agent 用。&lt;/p&gt;&#10;&lt;h2 id="怎么跑起来的"&gt;怎么跑起来的&lt;/h2&gt;&#10;&lt;p&gt;权重是我做的 &lt;a href="https://huggingface.co/leoncca/Qwen3.8-Flash-Next-Uncensored-AWQ-g32"&gt;AWQ int4（g32）量化版&lt;/a&gt;，推理引擎用的是针对 V100 补了算子的 &lt;a href="https://github.com/1CatAI/1Cat-vLLM"&gt;1Cat-vLLM&lt;/a&gt;。四张卡做张量并行，QSA 的 KV 缓存再按两路切分；KV 存为 FP8 E4M3，解码开启 MTP4 投机解码，另留 32GB 主机内存给 KV 缓存卸载。&lt;/p&gt;&#10;&lt;p&gt;服务开了 262K 上下文和最多 4 路并发，GPU 上有约 104 万 token 的 KV 缓存。&lt;/p&gt;&#10;&lt;h2 id="用起来怎么样"&gt;用起来怎么样&lt;/h2&gt;&#10;&lt;p&gt;我的测试里，8K 文本输入时，单路解码有 70 多 token/s，首字约 3.5 秒；四路一起跑，总吞吐约 160 token/s。长对话命中缓存后，首字大约半秒。大图、多图和 1080p 视频也都能正常处理。&lt;/p&gt;&#10;&lt;h2 id="踩过的坑"&gt;踩过的坑&lt;/h2&gt;&#10;&lt;p&gt;第一，PCIe 版 V100 在这套 CUDA Graph 配置下，需要设置 &lt;code&gt;NCCL_GRAPH_REGISTER=0&lt;/code&gt;。之前 MTP4 与并发请求组合时会偶发非法访存，最后通过 GPU coredump 定位到 NCCL 图缓冲注册与 PyTorch &lt;code&gt;expandable_segments&lt;/code&gt; 的冲突。&lt;/p&gt;</description></item></channel></rss>