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
shishi
99a22f05b8
fix(dsv4): align launch params with official A3 tutorial (fixes DP die allocation)
...
The previous params caused all 4 DP replicas to bind to the same 4 dies
(die 0-3), leaving 12 dies idle. Root cause was a combination of missing
official params + extra non-official params that interfered with DP
worker device placement.
Verified: with aligned params, TP=4 DP=4 correctly distributes 16 workers
across all 16 dies (8 cards x 2 dies), each at ~57 GB HBM (91% util).
Changes (align to docs.vllm.ai A3 tutorial):
- Add --max-num-batched-tokens 10240 (was missing; affects DP scheduling)
- Add --api-server-count 1 (was missing; without it vllm spawns N API
servers for N DP ranks, disturbing device assignment)
- Remove --kv-cache-dtype fp8 (official uses default bfloat16)
- Remove --trust-remote-code (official doesn't use it for DSV4)
- Remove enable_dsa_cp from additional-config (official doesn't have it)
- max-model-len: per-TP caps (32768/65536/131072) -> 1048576 for all TPs
(official uses full 1M; the caps were over-cautious)
- max-num-seqs: per-TP (128/256/256) -> 64 for all (official value)
2026-07-29 15:09:27 +08:00
shishi
c222ed98b2
feat(910c/glm52): 并行配置改为 4 4 / 8 2 / 16 1 对标H20的 2 4 / 4 2 / 8 1
...
A3 910C 有16 dies(8卡x2die),H20有8卡。为公平对比,TP按卡数等效:
A3 TP=4 DP=4 (4die/副本x4) == H20 TP=2 DP=4 (2卡/副本x4)
A3 TP=8 DP=2 (8die/副本x2) == H20 TP=4 DP=2 (4卡/副本x2)
A3 TP=16 DP=1 (16die/副本x1) == H20 TP=8 DP=1 (8卡/副本x1)
与dsv4实验(a65849b)保持一致的配置思路。
新增TP=4 per-TP参数覆盖(expert-parallel下专家分4份+dense复制,
KV cache极紧): gpu_mem=0.97, max_model_len=4096, max_num_seqs=32
TP=4可能OOM,若发生会自动记录并跳过。
config.env: PARALLEL_CONFIGS 8 1/16 1 -> 4 4/8 2/16 1; 加TP4_变量
start_vllm_docker.sh: case $TP 加 TP=4 分支
run_adaptive_concurrency_add16.sh: case $tp 加 TP=4 分支
2026-07-29 13:44:40 +08:00