Skip to content

Fix Kimi K3 B200 AIPerf metrics configuration - #2569

Open
cquil11 wants to merge 38 commits into
mainfrom
agent/refresh-kimik3-b200-dspark-agentx
Open

Fix Kimi K3 B200 AIPerf metrics configuration#2569
cquil11 wants to merge 38 commits into
mainfrom
agent/refresh-kimik3-b200-dspark-agentx

Conversation

@cquil11

@cquil11 cquil11 commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Fix AIPerf server-metrics configuration for the custom Kimi K3 benchmark wrapper.
  • Pass the aggregate vLLM endpoint explicitly as http://localhost:8000/metrics while retaining the strict vllm: prefix gate and prompt-token cache reporting.
  • Reduce the completed broad search to a measured ten-point full-duration grid: resident c2/c4/c8/c12 and SimpleCPUOffloadConnector c8/c12/c16/c28/c32/c48.

Root cause

PR #2475 was merged while its first fast sweep was still being diagnosed. All 21 jobs in run 31549977914 failed before Slurm submission because the pinned srt-slurm schema rejected benchmark.aiperf_server_metrics as an unknown field.

These recipes use benchmark.type: custom. The supported wrapper contract is AIPERF_SERVER_METRICS_URLS; it emits exactly one --server-metrics flag followed by the configured URL list.

Search result

The corrected 19-point AgentX-fast run 31558618757 completed all throughput jobs and both evals successfully on exact head 258c6e4f544ceff5fdc8d0007b431d69d17b405f.

The fast low-latency frontier is resident c2/c4, then offload c8/c12. Resident c12 and offload c16 retain the immediate cliff boundary. Offload c28/c32/c48 remain high-capacity controls because the prior one-hour sweep showed the high-throughput end of the curve is not reliably ranked by the shorter stochastic sample.

Every completed throughput point passed the strict vllm: server-metrics prefix gate with nonempty artifacts. Realized commands contained exactly one --server-metrics http://localhost:8000/metrics, and AIPerf reported 1/1 endpoint reachable.

Validation

  • All four recipes pass srtctl dry-run with pinned renderer commit df5baa93f4caf5169dea2a4236ad2cc742fe40e7.
  • Matrix and changelog tests: 258 passed.
  • Final generator output: exactly ten DSpark throughput points at 3600 seconds.
  • git diff --check and performance changelog validation passed.

This PR is English-only.


Note

Low Risk
Benchmark recipe and matrix configuration only; no runtime serving, auth, or data-path changes.

Overview
Fixes AIPerf server-metrics for the four Kimi K3 B200 agentic srt-slurm recipes by dropping the unsupported benchmark.aiperf_server_metrics field and setting AIPERF_SERVER_METRICS_URLS to http://localhost:8000/metrics, matching the custom-benchmark env contract used by agentic_srt.sh while keeping the existing vllm: prefix gate.

Narrows kimik3-fp4-b200-dynamo-vllm-agentic-dspark in configs/nvidia-master.yaml from the broad 19-point fast sweep to a 10-point full-duration grid: GPU-resident c2/c4/c8/c12 and SimpleCPUOffloadConnector c8/c12/c16/c28/c32/c48, removing extra resident medium/high-concurrency blocks and trimming offload concurrencies (e.g. c20/c24/c64).

Documents the metrics fix and grid retention in perf-changelog.yaml.

Reviewed by Cursor Bugbot for commit 5b132ba. Bugbot is set up for automated code reviews on this repo. Configure here.

cquil11 and others added 30 commits August 3, 2026 11:27
中文:添加 B200 Kimi K3 AgentX 延迟、均衡吞吐、GPU 常驻高并发和 CPU KV 卸载配置,并通过 srt-slurm 启动多节点聚合式推理。
中文:绕过 B200 上不受支持的自定义集合通信,避免 TP16 在权重加载前停滞。
中文:修正 B200 DEP 启动参数、KV 事件发布、GPU 计数与 CPU DRAM 预算,并禁用跨节点不受支持的 FlashInfer 集合通信。
中文:为跨节点 TP16 和 TEP16 强制使用 PyNCCL,跳过会在 B200 集群上停滞的 MNNVL 自定义集合通信初始化。
中文:为跨节点 TP16 和 TEP16 禁用 Kimi K3 LatentMoE tail fusion,避免 torch symmetric memory 无法跨节点传递文件描述符。
中文:为跨节点 TP16 和 TEP16 禁用 allreduce/RMS fusion,避免 profile_run 再次选择不受支持的 FlashInfer MNNVL 工作区。
中文:改用可运行的 B200 TP8 x PP2 配置,并移除无法启动的跨节点 TP16、TEP16 和 DEP16 配置。
中文:DSpark 草稿模型不支持流水线并行,因此改回无 PP 的 TP16 配置,并保留 GPU 与 CPU KV 容量档位。
中文:将 main 合并到 B200 分支
中文:使用新版 Kimi nightly 镜像测试 B200
中文:禁用 Kimi 跨节点融合 latent-MoE 尾部路径,改用可移植的 PyNCCL 通信。
中文:强制 Kimi 跨节点 latent-MoE 使用可移植的 PyNCCL 通信路径。
中文:在两个 B200 配方中安装 Kimi 兼容性启动脚本。
中文:跳过跨节点 B200 不支持的 Kimi FlashInfer 对称内存工作区探测。
中文:强制 Kimi 跨节点通信使用 PyNCCL 可移植路径。
中文:补齐 Kimi 基准测试变更日志条目的末尾换行。
中文:移除 TP16 方案不再使用的 DEP 计数逻辑与测试,保持 PR 范围聚焦。
中文:将 DRAM 预留比例调整为 0.63,使每节点 1,889 GB 的资源预留覆盖每个 TP rank 220 GiB 的 KV 卸载池。
中文:移除已不适用于当前 TP16 方案的 DEP 启动器注释。
中文:并发 64 预检因 TTFT 指标覆盖率仅为 97.6% 而失败。将 DRAM 卸载容量档上限调整为待验证的并发 48。
中文:并发 64 预检已被工作流接受并上传完整聚合结果,保留该 DRAM 卸载容量端点以刻画饱和区间。
中文:合并 main 并解决冲突
中文:合并 main 后保留性能变更日志末尾换行
中文:合并最新 main,按追加规则保留 B200 Kimi K3 基准测试变更日志,并复用已通过的完整扫描结果。
中文:B200 改用上游 TP16+EP16 Kimi K3 推理路径,移除本地 vLLM 补丁,并为 GPU 常驻和 DRAM 卸载配置加入真实 block 验证评估。
中文:B200 双节点 TEP 配置改用上游 eager 模式,避免 CUDA graph capture 探测不可用的跨节点 MNNVL workspace。
中文:B200 双节点拓扑改为节点内 TP8、跨节点 DP2/EP16,使用上游 vLLM 原生路径并避免跨节点 FlashInfer MNNVL workspace。
中文:合并 main 并将 B200 Kimi K3 基准测试条目重新追加到 perf-changelog.yaml 末尾。
adibarra and others added 6 commits August 11, 2026 13:59
中文:缩短多节点评估产物名称,避免超过 GitHub Actions 的 256 字符上限。
为四个 Kimi K3 配方启用显式 AIPerf 服务端指标端点、提示词缓存明细,并要求导出包含 vllm: 前缀。
将 SimpleCPUOffloadConnector 搜索范围扩展至 c8 至 c64,以便与驻留曲线逐点比较并确定交叉点。
同步主分支并保留双方追加的性能变更记录。
移除固定 srt-slurm 不支持的字段,并通过自定义基准环境显式传递聚合 vLLM 指标地址。
同步已合并的 Kimi K3 提交,使后续修复仅包含受支持的指标环境变量变更。

# Conflicts:
#	benchmarks/multi_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-b200-tp8dp2-latency-dspark-agentic.yaml
#	benchmarks/multi_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-b200-tp8dp2-latency-dspark-eval-agentic.yaml
#	benchmarks/multi_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-b200-tp8dp2-vllm-simple-offload-dspark-agentic.yaml
#	benchmarks/multi_node/srt-slurm-recipes/vllm/kimi-k3/agentic/agg-b200-tp8dp2-vllm-simple-offload-dspark-eval-agentic.yaml
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase As a PR reviewer and CODEOWNER, I have reviewed this and have.

For PR verification, add the full-sweep-fail-fast label (strongly recommended) to this PR — the benchmark sweep only runs on labeled PRs. Use full-sweep-enabled only if you need matrix jobs to keep running past a failure.

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs


感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 As a PR reviewer and CODEOWNER, I have reviewed this and have

如需进行 PR 验证,请为此 PR 添加 full-sweep-fail-fast 标签(强烈推荐)— 基准测试 sweep 仅在带有标签的 PR 上运行。仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled

PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档

@cquil11 cquil11 added full-sweep-enabled agentx-fast Run AgentX throughput with 1 warmup request per lane and a 20-minute profile; not reusable labels Aug 12, 2026
追加记录固定 srt-slurm 的指标配置修复。
@github-actions

Copy link
Copy Markdown
Contributor

基于完整的十九点 AgentX-fast 扫描,将正式扫描收敛到驻留 KV 的 c2/c4/c8/c12,以及 SimpleCPUOffloadConnector 的 c8/c12/c16/c28/c32/c48。保留低延迟曲线、拐点、紧邻的容量边界和高并发对照,同时移除已被支配的重复点。
@cquil11 cquil11 removed the agentx-fast Run AgentX throughput with 1 warmup request per lane and a 20-minute profile; not reusable label Aug 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@cquil11

cquil11 commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator Author

/stage-results 31568517956

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

@cquil11 staged run 31568517956: https://inferencemax-app-git-staging-semianalysisai.vercel.app/inference?i_dates=2026-08-12~r31568517956

This run remains available across future /stage-results requests. Staging the same run ID again updates its staged data. Staging workflow

@cquil11

cquil11 commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Closing because the project scope is now limited to porting active, nondeprecated AMD multi-node configurations to srt-slurm. This PR is outside that scope.

@cquil11

cquil11 commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator Author

Reopening: this PR predates the recent out-of-scope configuration-porting detour and was closed by mistake during an overly broad cleanup. Its prior state is being restored.

@cquil11 cquil11 reopened this Aug 27, 2026

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good — the perf-changelog entry I flagged as missing in my last review is now appended at the tail (config-keys: kimik3-fp4-b200-dynamo-vllm-agentic-dspark, pr-link #2569), and no new issues were found.

What was reviewed: the four recipe YAMLs' env-var swap from aiperf_server_metrics: true to AIPERF_SERVER_METRICS_URLS; the nvidia-master.yaml search-space pruning (removed medium-concurrency/GPU-resident blocks, adjusted resident and offload conc-lists) for consistency with the surviving recipe files (no orphaned CONFIG_FILE/EVAL_CONFIG_FILE references); and that perf-changelog.yaml's existing bytes are preserved with the new entry appended only at the end.

Extended reasoning...

Overview

This PR touches only the Kimi K3 FP4 B200 dynamo-vLLM agentic "dspark" recipe family: four srt-slurm recipe YAMLs swap the unsupported benchmark.aiperf_server_metrics: true field for the supported AIPERF_SERVER_METRICS_URLS env var, configs/nvidia-master.yaml prunes the search-space for kimik3-fp4-b200-dynamo-vllm-agentic-dspark based on a completed 19-point sweep, and perf-changelog.yaml gets one new entry appended at the tail.

Security risks

None. This is a pure config/benchmark-tuning change with no code paths touching auth, crypto, secrets, or externally-reachable surfaces — only YAML values consumed by an internal sweep/benchmark runner.

Level of scrutiny

Moderate is appropriate: no code logic changed, only declarative config and a changelog entry, but correctness depends on the (unverifiable-from-diff) sweep results referenced in the PR description. My previous review's blocking finding (missing perf-changelog entry) is now resolved in this push, and this run's bug hunt reported zero new findings after examining the recipe/master-config pairing for orphaned references and the changelog append-only byte preservation.

Other factors

This PR previously received a review from me flagging the missing perf-changelog entry as a violation of the repo's non-negotiable invariant; that has since been fixed by commit 5b132ba, which is the only substantive change since my prior review. No CHANGES_REQUESTED or unaddressed third-party objections are visible in the conversation timeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

2 participants