[Docs] Rebase Kimi SM120 Draft onto synced main

This commit is contained in:
Zhiyi Hong 2026-08-19 14:02:35 +08:00
parent a5248ed80e
commit 0fdcab9927
6 changed files with 50 additions and 19 deletions

View File

@ -1,5 +1,7 @@
# sskj — 多平台大模型推理性能基准测试项目
**更新2026-08-19 13:58:50 CST**:用户同步 GitHub fork 后,将 Kimi-K3 SM120 SGLang 的 7 个提交无冲突重放到最新 `main` `593b1a9``range-diff` 逐提交确认补丁等价;最终 Draft HEAD `b95b534` 已推送至 `ACEEE-1222/sglang:hzy/kimi-k3-sm120-flashinfer-mxfp4`。在 601 统一验证镜像中重跑最终 HEAD 的语法与定向回归,结果为 `10 passed, 3 deselected`;代表性四机性能数据保留,不重复消耗 GPU。
**更新2026-08-19 13:07:48 CST**:完成 Kimi-K3 SM120 SGLang Draft PR 的最终代表点验收。基于 SGLang `300c87a` 与 FlashInfer #4460 `b525c51`,在 601-604 四节点 TP32×EP4 上完成 16K→1、C=8、Chunk=8K 的 Marlin/FlashInfer 各 3 次 A/B240/240 请求成功。FlashInfer 的 Input TPS 中位数提升 10.96%TTFT P50/P95 分别下降 9.91%/9.92%。公开 PR Checklist 已全部勾选,轻量汇总和原始证据索引已归档。
**更新2026-08-19 10:45:18 CST**:新增 Kimi-K3 SM120 SGLang Draft PR 的单点代表性验收入口。使用精确 SGLang `300c87a`、FlashInfer #4460 实现 `b525c51` 和统一镜像,在 601-604 四节点 TP32×EP4 上仅复测 16K→1、C=8、Chunk=8K 的 Marlin/FlashInfer A/B各 3 次重复;完整命令、镜像身份、原始日志和汇总统一落入单个 Run 目录。

View File

@ -11,20 +11,21 @@
| 区分官方 0.6.17 与实际能力 | 已证明 | 605 profile 设置 `FLASHINFER_DISABLE_VERSION_CHECK=1` 并启动前执行两个补丁;报告未再声称 0.6.17 原版直接支持完整组合 |
| 逐文件比较 605 补丁、FlashInfer #4460、SGLang 上游 | 已证明 | `UPSTREAM_DUPLICATION_AUDIT.md` 的“上游已有/605 已有/我们新增/明确排除”四部分605 补丁目标已从原文件重新核验 |
| 不提交重复 FlashInfer kernel | 已满足 | FlashInfer 历史实现与测试仅作为本地研究记录SGLang Draft 不含 FlashInfer C++、依赖 pin 或 private capability marker |
| SGLang 仅保留真实增量 | 已满足 | SGLang base `63d783bbe095` 到 head `300c87a431ac` 仅修改 5 个文件;补丁位于 `patches/sglang-kimi-k3-sm120-flashinfer-mxfp4-draft.patch` |
| 可应用 patch 与 Draft HEAD 一致 | 已证明 | 在全新 detached base `63d783bbe095` 应用仓库 patch 并 `git add -A` 后,暂存树与 `300c87a431ac` 的 diff 为空 |
| SGLang 仅保留真实增量 | 已满足 | SGLang base `593b1a9b8aee` 到 head `b95b5341ab95` 仅修改 5 个文件;补丁位于 `patches/sglang-kimi-k3-sm120-flashinfer-mxfp4-draft.patch` |
| 可应用 patch 与 Draft HEAD 一致 | 已证明 | 在全新 detached base `593b1a9b8aee` 应用仓库 patch 并 `git add -A` 后,暂存树与 `b95b5341ab95` 的 diff 为空 |
| Kimi gate/up 权重和 scale 布局 | 已证明 | 注册测试覆盖连续 `[gate; up]` 到 CUTLASS `[up; gate]`,并保留 GPT-OSS pair-interleaved 分支 |
| SiTU 4.0/25.0 参数透传 | 已证明 | #4460 ABI 的 SM120 GPU correctness 测试覆盖独立 `situ_beta``situ_linear_beta` |
| 非连续 hidden states | 已证明 | GPU correctness 测试输入为非连续 viewrunner 在 MXFP8 quantize 边界 materialize contiguous tensor |
| attn_residual SM120 guard | 已证明 | 注册架构测试覆盖 SM100/103/110 为 true、SM120/SM90 为 false |
| autotune 稳定性边界 | 已证明且不纳入 PR | 605 的 skip workaround 未进入 Draft正式 24 点候选矩阵未复现 autotune 崩溃,因此没有用历史 workaround 扩大 PR |
| 最终定向 correctness | 已通过 | RTX 6000D GPU6、#4460 snapshot`8 passed, 17 warnings in 559.87s`wheel SHA256 `deafdac2dc44b331441daba64e5b5dd28f591fe44f087af0aac3521c6ddbfa1f` |
| 最终兼容回归 | 已通过 | Draft HEAD `300c87a``8 passed, 5 deselected, 17 warnings in 22.23s` |
| fork 同步与补丁等价性 | 已通过 | 旧 base/head `63d783b..300c87a` 重放到 `593b1a9..b95b534`7/7 commits 在 `git range-diff` 中均为 `=` |
| 最终兼容回归 | 已通过 | Draft HEAD `b95b534`compileall 通过,`10 passed, 3 deselected, 17 warnings in 33.30s` |
| 格式和 CI 注册 | 已通过 | 五个变更文件完整 pre-commit 全部通过;两个测试文件注册到 CUDA CI `base-b/1-gpu-small` |
| 保留 EP4 服务级结果 | 已证明 | 601 原始目录有 24 个正式 JSONL 点;每组 3 repeats、每点 40/40 成功;错误扫描为空;未重跑 EP32 |
| 当前 Draft 代表点 A/B | 已通过 | Run `kimi3-sm120-pr-representative-20260819-115530`Marlin/FlashInfer 各 3 次240/240 请求成功FlashInfer Input TPS +10.96%TTFT P50/P95 -9.91%/-9.92% |
| 公开 PR 标题、正文、依赖和已知限制 | Draft 正文已完成 | `SGLANG_DRAFT_PR.md` 遵循官方模板Checklist 全部勾选;标题为 `[Feature] Support Kimi-K3 FlashInfer MXFP4 MoE on SM120`Speed Tests 只报告一个目标硬件代表点,不作普遍加速声明 |
| GitHub fork 交付 | 已完成 | `ACEEE-1222/sglang:hzy/kimi-k3-sm120-flashinfer-mxfp4`Draft HEAD `300c87a` |
| GitHub fork 交付 | 已完成 | `ACEEE-1222/sglang:hzy/kimi-k3-sm120-flashinfer-mxfp4`Draft HEAD `b95b534`,远端 ref 已复核 |
| 内部仓库独立分支 | 本地和 601 已完成,远端待推送 | 601 分支 `hzy/feature-kimi-k3-sm120-flashinfer-mxfp4` 已到审计提交;`git.meta-stone.net` 尚未为本机或 601 key 授权HTTPS 也无 Token |
## 原始证据位置

View File

@ -7,21 +7,24 @@
> Kimi-K3 SGLang 接入、精确 MXFP8×MXFP4+SiTU 测试和 6000D 实测证据。
> 权威边界见 [`UPSTREAM_DUPLICATION_AUDIT.md`](UPSTREAM_DUPLICATION_AUDIT.md)。
当前 SGLang Draft HEAD 为 `300c87a431ac`,已推送到
当前 SGLang Draft 基于 `main` `593b1a9b8a`HEAD 为 `b95b5341ab95`,已推送到
`ACEEE-1222/sglang:hzy/kimi-k3-sm120-flashinfer-mxfp4`。公开 PR 正文见
[`SGLANG_DRAFT_PR.md`](SGLANG_DRAFT_PR.md),可审查补丁见
[`patches/sglang-kimi-k3-sm120-flashinfer-mxfp4-draft.patch`](patches/sglang-kimi-k3-sm120-flashinfer-mxfp4-draft.patch)。
五个变更文件已通过完整 pre-commit最终非 JIT 回归为
`8 passed, 5 deselected, 17 warnings in 22.23s`
五个变更文件已通过完整 pre-commit同步 fork 后7 个提交的
`range-diff` 全部为补丁等价,最终非 JIT 回归为
`10 passed, 3 deselected, 17 warnings in 33.30s`
逐项验收和唯一剩余交付项见
[`COMPLETION_AUDIT.md`](COMPLETION_AUDIT.md)。
最终 PR 代表点已经在与 Draft HEAD 对齐的统一镜像中完成:四节点
最终 PR 代表点已经在同步前的等价 patch `300c87a` 统一镜像中完成:四节点
TP32/EP4、16K→1、C=8、Chunk=8KMarlin 与 FlashInfer 各三次重复,
240/240 请求成功。FlashInfer 相对 Marlin 的 Input TPS 中位数为
`+10.96%`TTFT P50/P95 为 `-9.91%/-9.92%`。轻量结果见
`results/pr_representative_16k_c8_chunk8k_summary.json`
`results/pr_representative_16k_c8_chunk8k_results.csv`
同步后的 `b95b534` 与该 7 提交系列逐提交等价,因此保留原始性能证据,
不把容器中的旧 commit object 错写成最终 HEAD也不重复运行四机实验。
## 目标

View File

@ -64,8 +64,9 @@ MXFP4 weights, SiTU `(4.0, 25.0)`, Kimi gate/up layout, and non-contiguous
input. It compares the SGLang adapter output directly with the public
FlashInfer CUTLASS API.
After the final compatibility and CI-registration changes, the non-JIT subset
was rerun from the final commit:
After syncing the fork and rebasing the seven-patch series onto SGLang main
`593b1a9b8aeedb908ee21870c02a0fd1a3dc30a5`, the non-JIT subset was rerun
from the final Draft head `b95b5341ab9555ba5ea53f5828f6de203d749cce`:
```bash
pytest -q -s \
@ -75,7 +76,7 @@ pytest -q -s \
```
```text
8 passed, 5 deselected, 17 warnings in 22.23s
10 passed, 3 deselected, 17 warnings in 33.30s
```
## Speed Tests and Profiling
@ -91,11 +92,19 @@ Model: Kimi-K3
Parallelism: TP32 / EP4 / DP1
Workload: ISL=16384, OSL=1, concurrency=8, 40 requests
Chunked Prefill: 8192 tokens
SGLang: 300c87a431ac40d3e7817246376b7fe20932db09
SGLang patch series used for the run: 300c87a431ac40d3e7817246376b7fe20932db09
Final rebased Draft head: b95b5341ab9555ba5ea53f5828f6de203d749cce
Final SGLang main base: 593b1a9b8aeedb908ee21870c02a0fd1a3dc30a5
FlashInfer: PR #4460 implementation b525c513fef7c1d162efd3ce8636fcc8760de66a
Repeats: 3 per backend
```
The service benchmark was collected before the fork sync. `git range-diff`
reports all seven commits as patch-equivalent after the rebase, and the
directed tests above were rerun from the final Draft head. The performance
result is therefore retained without claiming that the benchmark container
contained the new commit object.
| Backend | Median Input TPS | Median TTFT P50 | Median TTFT P95 |
|---|---:|---:|---:|
| Marlin | 2930.03 | 43.587 s | 46.287 s |

View File

@ -103,11 +103,15 @@ activation_situ_linear_beta = 25.0
SGLang Draft 的完整可审查 diff
```text
base: 63d783bbe0955237ec41f9ddabf7235ddf04673c
head: 300c87a431ac40d3e7817246376b7fe20932db09
base: 593b1a9b8aeedb908ee21870c02a0fd1a3dc30a5
head: b95b5341ab9555ba5ea53f5828f6de203d749cce
patch: patches/sglang-kimi-k3-sm120-flashinfer-mxfp4-draft.patch
```
该 7 提交系列由旧范围 `63d783b..300c87a` 重放到用户新同步的 main
`git range-diff` 逐项均为 `=`。在新 base 的独立 worktree 应用上述 patch、
暂存全部文件后,与 `b95b534` 比较的 diff 为空。
GitHub 交付分支:
```text
@ -154,16 +158,16 @@ GPU: NVIDIA RTX 6000D, SM120
最终审查发现普通 SwiGLU 路径也曾无条件访问 `ActivationType.Situ`,可能误伤
旧 FlashInfer。提交 `775aa076` 改为动态加入 SiTU enum并新增旧版兼容回归。
最终提交 `300c87a` 为两个测试文件增加正式 CUDA CI 注册,并通过完整
pre-commit。最终 HEAD 的能力探测、旧版兼容和架构 gate 为
`8 passed, 5 deselected, 17 warnings in 22.23s`GPU kernel 路径继续由前述
8/8 测试覆盖。
同步前提交 `300c87a` 为两个测试文件增加正式 CUDA CI 注册,并通过完整
pre-commit。同步后的最终 HEAD `b95b534` 在 601 通过 compileall能力探测、
旧版兼容和架构 gate 为 `10 passed, 3 deselected, 17 warnings in 33.30s`
GPU kernel 路径继续由前述 8/8 测试覆盖。
完整 pre-commit 命令覆盖全部五个变更文件isort、ruff、black、codespell、
registered-tests 检查及其他 hook 全部通过。下载 GitHub hook 时只对该命令使用
HTTPS-to-SSH URL rewrite没有修改全局 Git 配置。
最终代表点使用当前 Draft HEAD#4460 implementation commit 的统一组合,
最终代表点使用同步前等价 patch `300c87a`#4460 implementation commit 的统一组合,
六轮 240/240 请求成功。FlashInfer 在所有 32 rank 完成 autotune因此 605 的
skip-autotune workaround 仍不属于 SGLang PR 增量。该固定点的 FlashInfer
Input TPS 为 Marlin 的 `+10.96%`TTFT P50/P95 为 `-9.91%/-9.92%`;这只作为

View File

@ -2,6 +2,18 @@
本文件记录可恢复的关键决策、失败尝试和证据路径。成功结论见 `README.md`
## 2026-08-19 fork 同步与最终交付
- 用户重新同步 `ACEEE-1222/sglang:main` 后,最终 base 为 `593b1a9b8aee`
- 原 7 提交系列从 `63d783b..300c87a` 无冲突重放为
`593b1a9..b95b534``git range-diff` 的 7 项全部为 `=`,没有语义改动。
- 最终 HEAD 在 601 统一验证镜像中通过 compileall 和定向非 JIT 回归:
`10 passed, 3 deselected, 17 warnings in 33.30s`
- GitHub feature 分支通过精确 `force-with-lease``300c87a` 更新到
`b95b534`,随后用 `ls-remote` 复核远端 ref。
- 四机代表点不重跑。其容器记录的是同步前 `300c87a`,但对应 patch 与最终
HEAD 逐提交等价PR 正文同时列出实验 patch SHA 和最终 HEAD不混淆对象。
## 2026-08-19 最终 PR 代表点
- 只补跑一个代表点,不重跑 EP32TP32/EP4、16K→1、C=8、Chunk=8K