230 Commits

Author SHA1 Message Date
Zhiyi Hong
08a35066d7 [Test] Complete Kimi-K3 Prefill MoE backend report 2026-08-19 16:54:45 +08:00
Zhiyi Hong
74ec19dd48 [Docs] Close Kimi SM120 delivery audit 2026-08-19 14:25:03 +08:00
Zhiyi Hong
0fdcab9927 [Docs] Rebase Kimi SM120 Draft onto synced main 2026-08-19 14:02:35 +08:00
Zhiyi Hong
a5248ed80e [Docs] Record exact Draft patch verification 2026-08-19 13:31:56 +08:00
Zhiyi Hong
fc336a3c7b [Test] Finalize Kimi SM120 PR representative benchmark 2026-08-19 13:11:21 +08:00
Zhiyi Hong
63f2327a90 [Fix] Validate per-request benchmark errors correctly 2026-08-19 11:54:34 +08:00
Zhiyi Hong
a90c898683 [Fix] Use official kernel version-check override for validation 2026-08-19 11:29:55 +08:00
Zhiyi Hong
ab9a5422f6 [Fix] Persist FlashInfer JIT cache across services 2026-08-19 11:16:07 +08:00
Zhiyi Hong
7f67dfe6b3 [Fix] Keep ABI-matched SGLang kernel in PR image 2026-08-19 11:00:50 +08:00
Zhiyi Hong
e8ff3ce1e8 [Test] Add exact Kimi SM120 PR validation point 2026-08-19 10:47:26 +08:00
Zhiyi Hong
d28db48e4b [Docs] Scope SGLang draft to compatibility 2026-08-19 00:12:38 +08:00
Zhiyi Hong
39f692caae [Docs] Keep draft checklist evidence-based 2026-08-19 00:10:20 +08:00
Zhiyi Hong
a9206ff105 [Docs] Add Kimi SM120 completion audit 2026-08-18 23:58:37 +08:00
Zhiyi Hong
a11c80b703 [Docs] Finalize Kimi SM120 SGLang draft PR 2026-08-18 23:47:34 +08:00
Zhiyi Hong
e01df16667 [Docs] Prepare Kimi SM120 SGLang draft PR 2026-08-18 23:16:53 +08:00
Zhiyi Hong
ec7b604a50 [Docs] Record Kimi EP4 MoE backend acceptance 2026-08-18 18:38:59 +08:00
Zhiyi Hong
27b8be09cb [Fix] Keep Kimi benchmark tokenizer offline 2026-08-18 15:12:24 +08:00
Zhiyi Hong
be9d6bfe3a [Fix] Materialize FlashInfer MXFP8 input layout 2026-08-18 14:50:13 +08:00
Zhiyi Hong
d0863501ca [Fix] Support legacy Kimi MoE runner config 2026-08-18 14:33:42 +08:00
Zhiyi Hong
13944079fa [Test] Add EP4 maximum-pressure capacity probe 2026-08-18 13:57:31 +08:00
Zhiyi Hong
e3974e2352 [Fix] Patch Kimi image for SM120 FlashInfer MXFP4 2026-08-18 13:06:32 +08:00
Zhiyi Hong
b50de8fe99 [Fix] Keep Kimi image dependency baseline for Phase 5 2026-08-18 12:46:08 +08:00
Zhiyi Hong
c14f8aa43a [Fix] Preserve FlashInfer wheel filename in image build 2026-08-18 12:40:02 +08:00
Zhiyi Hong
daeffd147b [Fix] Use built-in random IDs for Kimi Prefill matrix 2026-08-18 12:37:18 +08:00
Zhiyi Hong
5454fb984e [Test] Add Kimi SM120 real-serving MoE backend matrix 2026-08-18 12:32:06 +08:00
Zhiyi Hong
c8f30ab7dc [Perf] Profile Kimi SM120 FlashInfer MXFP4 MoE 2026-08-18 11:04:06 +08:00
Zhiyi Hong
6493798ad5 [Feature] Complete Kimi SM120 FlashInfer MXFP4 integration 2026-08-17 14:58:52 +08:00
Zhiyi Hong
a1c18d736b [Test] Add Kimi SM120 MXFP4 correctness matrix 2026-08-17 12:08:06 +08:00
Zhiyi Hong
dac1bb652d [Test] Reproduce Kimi SM120 SiTU contract gap 2026-08-14 17:09:13 +08:00
Zhiyi Hong
0684d269df [Docs] Audit Kimi-K3 SM120 FlashInfer MXFP4 gap 2026-08-14 15:52:14 +08:00
shishi
987f1db4b0 feat(pro6000): Kimi-K3 DP=2 部署(方案 B:两个独立 TP32×EP32 实例 + router 负载均衡)
- 实例 A profile 加 --disable-radix-cache(bench 测量纯净)
- 新增实例 B profile(kimi3_pro6000_sglang_tp32ep32_instB,.1-.4)
- 新增 deploy_dp2.sh 编排脚本(A + B + router --worker-urls)
- 新增 README
2026-08-11 17:56:14 +08:00
shishi
c69831f258 feat(pd): PD 长上下文 adaptive concurrency bench(SLO 方案 A,并发 +16)
- matrix.json: 3 个 shape(64k/128, 16k/1k, 1k/4k)
- run_adaptive_concurrency_pd.sh: PD 专用 adaptive 脚本
  - 复用 adaptive_bench_lib.sh(并发搜索/SLO 停止/OOM 检测/完整产物)
  - server 生命周期函数 no-op(PD 服务常驻,不启停)
  - 加 --flush-cache(配合 --disable-radix-cache 测纯净 TTFT/TPOT)
  - 离线环境变量 + 本地 tokenizer(避免 HF 在线下载)
- adaptive_config.env: SEARCH_ADDEND=16 +16 递增,上限 64,回退 8/1
- config.env: 新增 get_ttft_slo_ms 分层 SLO(1k->4s, 16k->15s, 64k->30s)
2026-08-11 14:45:36 +08:00
shishi
fe375e1307 docs(pd): 补充运维一键部署完整步骤(干净环境从零到跑通)
- experiments README 新增「运维一键部署」章节:6 步完整流程
  (免密/文件分发/仓库 clone/拉镜像/启动/验证)+ 停止重启 + 文件来源
- docs/KIMI_K3_DEPLOY.md 附录 B 新增 B.2 运维准备,编号顺延 B.3-B.6
- 修复 scp 分发命令(先建父目录)
2026-08-11 11:55:39 +08:00
shishi
ddf807d458 feat(bench/pd): 支持 --flush-cache 透传 + PD profile 加 --disable-radix-cache
- sskj.bench: 新增 --flush-cache 参数,透传给 sglang.bench_serving
  (warmup 后、main run 前 flush 服务器 KV/prefix cache,保证 TTFT/TPOT 测量纯净)
- P/D PD profiles: LAUNCH_ARGS 加 --disable-radix-cache(关闭 RadixAttention 前缀缓存)
2026-08-11 11:42:43 +08:00
shishi
da0e1b4372 fix(pd): config.env 加 DOCKER_CLIENT_IMAGE(bench 用 docker client 复用 kimi-k3 镜像) 2026-08-11 11:19:42 +08:00
shishi
04dfa31583 fix(pd): PATCH_MOUNTS 补充 flashkda wheel 挂载(BOOTSTRAP 需要 /flash_kda-*.whl) 2026-08-11 10:50:43 +08:00
shishi
d72dbff689 feat(pro6000): Kimi-K3 PD 分离部署(MoonCake RDMA)- 8 节点 P/D 双 profile + deploy_pd.sh 编排 + 文档
- 新增 P 组(prefill)/D 组(decode) deploy profiles(mooncake RDMA + 计算网 mlx5_0~3)
- 新增 experiments/pro6000/kimi3_pro6000_pd_rdma/ 编排脚本(mc-master+P+D+router)
- 关键修复: 必须关闭 PYTORCH_CUDA_ALLOC_CONF=expandable_segments
  (mooncake RDMA 注册 expandable GPU 段报 Bad address,GitHub #2511)
- 容器内升级 mooncake 0.3.12.post1(含 dmabuf 修复 #2035)
- docs/KIMI_K3_DEPLOY.md 新增附录 B,README 更新实验索引
2026-08-11 10:36:09 +08:00
shishi
3bd04698bb feat(pro6000): Kimi-K3 TP32×EP32 部署 profile、sm_120 补丁与运维手册 - 4 节点 RoCE 部署 + bench 实验 2026-08-10 11:04:24 +08:00
shishi
d9a2e3b5e5 fix(910c/glm52): 镜像与 client 修正 - 部署在 910c.2 的 GLM5.2-tuned 镜像
- profile DOCKER_IMAGE 改回 local/vllm-ascend:0.23-a3-20260718-sglang
  (910c.1 的 glm5.2-a3-openeuler 缺 expert_map_manager 模块无法启动)
- config.env DOCKER_CLIENT_IMAGE 指向 910c.2 本地 tuned 镜像(带 bench_serving)
- 实测: 910c.2 TP8/DP2 smoke 40/40, TTFT 1062ms, TPOT 51ms
2026-08-03 17:22:04 +08:00
shishi
f33c5f1d3d fix(deploy): DP_FLAG 未达 BOOTSTRAP 启动命令 + bench 的 model/tokenizer 分离
- profile.py: DP_FLAG 追加到 LAUNCH_ARGS 与 BOOTSTRAP(BOOTSTRAP 的 ${LAUNCH_ARGS}
  引用在 env 解析阶段已内联,必须直接 append 到 BOOTSTRAP 末尾),并改为用
  rendered 作模板展开源;修复 910c TP4/DP4 启动退化为 TP4 单 DP 布局导致
  专家权重不分片 OOM(61.3GB/die) 的问题(顺带修复 p800/pro6000 同类隐患)
- cli.py/runner.py: bench 的 API model 名改用 SERVED_MODEL_NAME(vLLM 严格校验),
  tokenizer 独立用 MODEL_PATH 路径并 --tokenizer 透传、docker client 挂载;
  修复 910c/vLLM 场景 404 Not Found
- dsv4 910c profile 恢复标准加载参数(prefetch+multithread);config.env per-TP
  max-model-len 默认改为已验证值(32768/65536/131072)
- 实测: 910c TP4/DP4 16-worker 布局启动健康, sskj.bench smoke 40/40
  (TTFT 1667ms, TPOT 35.4ms)
2026-08-03 16:41:29 +08:00
shishi
ea8302561e fix(910c): bench client 可用化 - 本地 vllm-ascend-sglang 镜像 + torch_npu 自动加载禁用
- runner.py docker client 注入 TORCH_DEVICE_BACKEND_AUTOLOAD=0(bench 纯 HTTP
  client 不需要 NPU backend,跳过 torch_npu 加载失败)
- dsv4/glm52 config.env: DOCKER_CLIENT_IMAGE 指向本地定制镜像
  (local/vllm-ascend:0.23-a3-dsv4-sglang,内置 sglang 0.5.2 bench_serving),
  USE_DOCKER_CLIENT=1,sskj.bench/run_bench.sh 的 docker client 分支可用
- run_bench.sh docker client 分支同步注入 AUTOLOAD=0
- glm52 profile 修正 DOCKER_IMAGE 为本机存在的 glm5.2-a3-openeuler
2026-08-03 15:43:45 +08:00
shishi
6ba04325d3 feat(910c): 部署解耦 - vLLM-Ascend profile 与 deploy 层接管服务启停
- deploy/profiles/910c/ 新增 dsv4/glm52 两个 vLLM-Ascend profile
  (JSON 参数经 BOOTSTRAP base64 注入避开镜像 entrypoint 转义;per-TP 参数
  由 start 脚本导出后经 profile 模板展开)
- dsv4/glm52 start_vllm_docker.sh 改为 deploy 薄包装(保留 sg docker 重入与
  per-TP 覆盖),新增 stop_vllm_docker.sh
- run_bench.sh / run_adaptive_concurrency*.sh 的 stop/build_server_args 改走
  deploy_stop/deploy_render_args
- runtime.py 修复单节点 dry-run 未跳过健康检查的 bug
- ops/README.md 补 910c 章节;.gitignore 补 910c ops_ 输出规则
- 附带入库 910c adaptive 汇总结果
2026-08-03 15:36:11 +08:00
Zhiyi Hong
9acf9fdfdb feat(pro6000): 部署/测试解耦 - deploy 层支持多节点与 vLLM,新增 6 个 profile
- sskj.deploy runtime 支持 NODE_HOSTS 多节点编排(ssh 分发/本地 rank/LOCAL_NODE_RANK)
  与 ENGINE=vllm 启动(SERVER_CMD),容器名按 rank 自动唯一
- scripts/common/deploy_cli.sh 新增 deploy_stop/status/multinode helper 与 node-rank 透传
- src/sskj/common/env.py 修复嵌套 ${VAR:-${OTHER}/path} 展开(平衡花括号扫描)
- deploy/profiles/pro6000/ 新增 6 个 profile: tp16/tp16_eagle/glm52(多节点)、
  sglang/vllm tp_dp_matrix、qwen3(单节点)
- 6 个实验 start/stop 脚本改为 deploy 薄包装,run_bench/adaptive 的 server 启停走
  deploy_render_args/deploy_start/deploy_stop,tp16 新增 matrix.json
- 首次入库 glm52_pro6000_sglang_multinode_tp16 实验目录;ops/README.md 补 pro6000 章节
- 实测通过: 单节点 dsv4 sglang/vllm 链路 + tp16 双节点启动/bench/清理
2026-08-03 15:17:41 +08:00
yy-fighting
3761d75b00 feat(ops): add unified bench/deploy layers and P800 profile 2026-08-02 15:36:28 +08:00
shishi
e885fd0dc2 feat(adaptive): support tiered per-ISL TTFT SLO via get_ttft_slo_ms()
- adaptive_bench_lib.sh: add default get_ttft_slo_ms() fallback (flat TTFT_SLO_MS),
  use it instead of hardcoded TTFT_SLO_MS in SLO comparison and logs,
  add ttft_slo_tiers_desc to run_manifest.json
- glm52_910c config.env: define tiered SLO for GLM-5.2:
  ≤2048:5000ms, ≤8192:8000ms, ≤32768:12000ms, ≤131072:20000ms, >131072:30000ms
  (~70-80% of DSv4-Pro values, since GLM-5.2 has simpler architecture)
- glm52_910c adaptive_config.env: update TTFT_SLO_MS comment noting tiered override

Backward compatible: experiments without get_ttft_slo_ms() keep flat 4000ms behavior.
2026-07-30 10:47:56 +08:00
shishi
ad4fd2b878 fix: INVALID_WORKLOAD 只跳过当前shape而不中止所有配置
原来 ADAPTIVE_FATAL_WORKLOAD=1 会设 abort_all=1,导致所有剩余TP/DP配置
全部被跳过。改为 continue 只跳过当前 shape,让后续 shape 和配置正常
继续执行。

这修复了 TP=8/DP=2 在 isl=4096 osl=128 因 KV cache 不足导致 workload
验证失败后,TP=16/DP=1 被跳过的 bug。
2026-07-30 10:05:28 +08:00
Zhiyi Hong
e53b2c7e4c fix: JSONL parsing in run_batch, add results/ to gitignore 2026-07-29 17:51:47 +08:00
Zhiyi Hong
c839230c0b feat: add EAGLE speculative decoding experiment (dsv4_pro6000_sglang_tp16_eagle) 2026-07-29 17:51:40 +08:00
shishi
4914ff4041 fix(dsv4): disable MTP speculative decoding for fair H20 comparison
MTP (multi-token prediction) speculative decoding was enabled, giving the
910C an unfair decode throughput advantage over the H20 baseline (which
has no MTP). Disable it so the benchmark measures pure model throughput.

- config.env: add DSV4_ENABLE_MTP=0 (default off)
- start_vllm_docker.sh: only add --speculative-config when DSV4_ENABLE_MTP=1
2026-07-29 16:50:13 +08:00
shishi
455a78161b fix(910c/glm52): 对齐官方A3教程参数(修DP die分配问题,同dsv4 99a22f0)
dsv4实验发现DP副本绑定到同一组die的问题(99a22f0),glm52存在相同问题:
缺--max-num-batched-tokens和--api-server-count导致DP worker设备分配异常
(不加api-server-count时vllm为N个DP rank启动N个API server)。

对齐docs.vllm.ai GLM5.2 A3官方教程:
- 加 --max-num-batched-tokens 8192 (官方值,影响DP调度)
- 加 --api-server-count 1 (官方值,避免多API server干扰设备分配)
- 去掉 --kv-cache-dtype fp8 (官方不指定,用默认bfloat16;且此镜像fp8本就未生效)
- 保留 --trust-remote-code / --enable-expert-parallel / enable_dsa_cp (官方有)
2026-07-29 15:28:54 +08:00