From 1e8091a11185f2c60cfdf0839c4b2dc32dab8eed Mon Sep 17 00:00:00 2001 From: Gahow Wang Date: Fri, 29 May 2026 21:28:47 +0800 Subject: [PATCH] docs: MoE perf-path progress + remaining work (#7-#10) Co-Authored-By: Claude Opus 4.8 --- docs/MOE_PROGRESS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/MOE_PROGRESS.md b/docs/MOE_PROGRESS.md index e334ab5..e52ffee 100644 --- a/docs/MOE_PROGRESS.md +++ b/docs/MOE_PROGRESS.md @@ -199,3 +199,29 @@ o = scores @ v -> merge heads -> @Wo + bo 3. `ls -la ~/models/gpt-oss-20b/` 看下载进度,续传缺的分片(§2)。 4. 重新 `pip download transformers` 取参考源码(/tmp 已清)。 5. 从 §6 的 P19.1 接着干。 + +--- + +## 性能版进度(2026-05-29 深夜,续) + +目标:让 gpt-oss 解码够快,真跑 AIME/GSM8K。当前「正确优先」版(host attention、无 KV +cache、experts 常驻 CPU 按需上传)只能跑几个 token 的前向,不可能跑 2400 token 生成。 + +四块拆解(task #7-#10): +- ✅ **#7 GPU sink-attention(decode)**:`decode_attention_sink` kernel 已写、已编译通过、 + 已 push(commit 2f9e69a)。sink 作为 softmax 分母额外一列、不贡献 value;带 sliding window。 + **还差**:flash PREFILL kernel 也要加 sink(多 token 一次性),否则 prefill 仍走 host。 +- ⬜ **#8 MXFP4 experts 放 GPU + dequant kernel(关键阻塞)**:BF16 全量 experts 36GB 单卡放不下; + 必须把 experts 以 MXFP4(13GB)放 GPU,用一个小 CUDA kernel 在每个 expert GEMM 前现解到 + BF16 scratch。否则 decode 每 token 要从 CPU 上传 ~5GB experts(2400 token = 数 TB),不可行。 +- ⬜ **#9 GPU MoE + KV-cache 解码**:router matmul + top-k(1 token 时 host 取 top4 即可)、 + 4 个 expert GEMV、KV cache(复用 GpuKVCache/paged)让 decode 变 O(1)/token。 +- ⬜ **#10 接 server + 跑 AIME/GSM8K**:engine 识别 gpt_oss arch、HTTP 服务、`tools/bench` + 对比 llama.cpp 金标准。 + +**关键依赖**:#8 是单卡跑通的前置(显存);或者把 gptoss 接进 Phase 18 的 PP(BF16 experts 切到 +多卡)。单卡走 MXFP4-on-GPU 更省事。建议顺序 #8 → #9 → #7(prefill) → #10。 + +**已确认可用资产**:BF16 dequant 模型在 dash5 `/opt/wjh/models/gpt-oss-20b-bf16`; +MXFP4 原始模型 `/opt/wjh/models/gpt-oss-20b`;llama.cpp 金标准 GGUF +`/opt/wjh/models/gpt-oss-20b-gguf/gpt-oss-20b-mxfp4.gguf`(已验证 "Paris" / "408")。