Skip to content

[PowerX] use profiling-free counters for H200 Kimi-K3 / [PowerX] H200 Kimi-K3 使用无 profiling 计数器 - #3550

Open
edwingao28 wants to merge 2 commits into
mainfrom
fix/h200-power-noprof
Open

edwingao28 wants to merge 2 commits into
mainfrom
fix/h200-power-noprof

Conversation

@edwingao28

Copy link
Copy Markdown
Collaborator

Description

Select profiling-free DCGM counters for H200 Kimi-K3 latency power sampling. This avoids profiling-watch repair on the exporter path; profiling metrics become unavailable. Stock image, sampling cadence and strict validation stay unchanged.

Testing: Native config/mount/launch checks passed; 7 cluster-config tests passed; changelog validation passed. Final sweep pending.

中文

H200 Kimi-K3 latency 功耗采集选择无 profiling 的 DCGM counters,避免 exporter 的 profiling-watch 修复路径。profiling 指标将不可用;stock 镜像、采样时序和严格校验保持不变。

**测试:**原生配置、挂载及启动命令检查通过;7 项 cluster-config 测试通过;changelog 校验通过。最终 sweep 待运行。

**AI 模型:**GPT-6 负责配置、验证和 PR 准备;原始实现使用的确切模型未核实。

**类型:**配置变更。关联 issue:无。

AI model disclosure

  • Model/version: GPT-6; original implementation model unverified.
  • Role: Configuration, validation and PR preparation.

Related Issue

N/A

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other (please describe)

Checklist

  • I have completed the AI model disclosure and kept it current
  • I have tested my changes locally
  • I have updated documentation if necessary
  • For every change that can affect benchmark performance and every recipe addition or modification, I have appended a new entry to the physical end of inferencex-e2e/perf-changelog.yaml and have not edited historical entries
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /use <run_id> (or the legacy /reuse-sweep-run) on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the sweep label will no longer automatically kick off new sweeps. Remove and re-add the label to force one.

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps only run on labeled PRs. Add full-sweep-fail-fast (strongly recommended); use full-sweep-enabled only when matrix jobs should continue after a failure.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**扫描仅在带有标签的 PR 上运行。强烈建议添加 full-sweep-fail-fast;仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

edwingao28 added a commit that referenced this pull request Sep 28, 2026
将新增 changelog 条目关联到 PR #3550,保持历史内容不变。

@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.

Beyond the reported pr-link finding, I also checked whether dropping DCGM_FI_PROF_* fields breaks samples-CSV parsing in multinode.py: gpu_util_pct/sm_active are only used under the optional SAMPLES_HEADER_V2 schema, with SAMPLES_HEADER (v1) as a valid fallback, so their absence is not a hard failure. I also looked at the stray trailing space before the comma in the new DCGM_FI_DEV_DEC_UTIL , line (line 15) — dcgm-exporter's CSV field loader trims whitespace around the field name, so this is a cosmetic inconsistency with the rest of the file, not a functional break.

Extended reasoning...

The diff swaps DCGM counters used for Kimi-K3 H200 power telemetry (new CSV, one command-line wiring change, a comment-only master-config touch, and an appended changelog entry); it touches no auth/crypto/permission code. I verified the confirmed pr-link:TBD finding's mechanism against validate_perf_changelog.py/prepare_perf_changelog_merge.py (PR_LINK_PLACEHOLDERS only accepts "XXX" or the XXX pull URL, so "TBD" is rejected) and independently checked two ruled-out candidates (sm_active/gpu_util_pct schema fallback in multinode.py, and dcgm-exporter's tolerance of the stray-space field name) — both check out as non-issues, leaving the pr-link problem as the one real blocker already flagged inline.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
- "Keep the stock exporter image, 100 ms watch interval, 1 s scrape interval, 2 s timeout, and strict power validation unchanged."
- "Kimi-K3 H200 latency 功耗遥测改用无 profiling 的 DCGM counters,避免同步恢复 profiling watch 导致采样卡顿;保留功耗和 GPU 利用率,省略 profiling 指标。"
- "保持原 exporter 镜像、100 ms watch 间隔、1 s 抓取间隔、2 s 超时与严格功耗校验不变。"
pr-link: TBD

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.

🔴 Merging this PR via the documented reuse workflow (maintainer comments /use <run_id>) will fail because pr-link: TBD at perf-changelog.yaml:9016 is not a value the merge tooling accepts. prepare_perf_changelog_merge.py's canonicalize_appended_links() -> compare_entries() -> validate_added_pr_link() (inferencex-e2e/infx/workflows/validate_perf_changelog.py:139-148) only accepts the real PR URL or the placeholders in PR_LINK_PLACEHOLDERS = {'XXX', 'https://github.com/SemiAnalysisAI/InferenceX/pull/XXX'} (lines 22-25). 'TBD' matches neither, so validate_added_pr_link raises ChangelogValidationError and main() prints ERROR and returns 1, blocking canonicalization until a maintainer manually edits the entry. …

Why this was flagged

…Fix: use the 'XXX' placeholder (the documented convention) for pr-link, not free text like 'TBD', so newly appended entries round-trip through canonicalize_appended_links.

Trigger: a maintainer comments /use <run_id> on this PR (per its own checklist), which runs prepare_perf_changelog_merge.py main()'s 'canonicalize' subcommand. That calls canonicalize_appended_links (prepare_perf_changelog_merge.py:88) -> compare_entries -> validate_added_pr_link (validate_perf_changelog.py:139-148), requiring the appended entry's pr-link to equal the expected PR URL or be in PR_LINK_PLACEHOLDERS = {'XXX', '.../pull/XXX'} (validate_perf_changelog.py:22-25). perf-changelog.yaml:9016 sets pr-link: TBD, which is neither, so it raises ChangelogValidationError("new PR entry must use ... or an XXX placeholder; found 'TBD'"), and main() returns 1 (prepare_perf_changelog_merge.py:291-293). On the base branch this entry does not exist so the path never triggers; here it blocks the reuse-merge step until fixed by hand.

Verification: normal (blocks the documented reuse-merge path; not caught by PR CI). The appended entry at perf-changelog.yaml:9016 sets pr-link: TBD. The reuse-merge flow — which the PR's own checklist references (/use <run_id>) — calls merge_with_reuse.py:679 canonicalize_changelog(pr, repo) → :521 canonicalize_appended_links(base_raw, original, pr, repo) → prepare_perf_changelog_merge.py:88…

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

@functionstackx
functionstackx added this pull request to stack #3593 September 29, 2026 20:05
cquil11 added a commit that referenced this pull request Sep 29, 2026
Drop the dcgm-counter-profile option, DCGM_COUNTER_PROFILE env plumbing,
counter_profiles selector, receipts, docs and tests. Every srt-slurm recipe
with a telemetry.dcgm_exporter block now sets the same command as the H200
Kimi-K3 recipe from #3550:

  dcgm-exporter --collect-interval=100 --address :{port} -f /configs/dcgm-counters-noprof.csv

Changelog entries cover the 20 master-config keys that reference these recipes.
edwingao28 added a commit that referenced this pull request Sep 29, 2026
将新增 changelog 条目关联到 PR #3550,保持历史内容不变。
@edwingao28
edwingao28 force-pushed the fix/h200-power-noprof branch from 2ff047f to dc92b73 Compare September 29, 2026 20:26
@edwingao28
edwingao28 removed this pull request from stack #3593 September 29, 2026 20:27
为 H200 Kimi-K3 latency 功耗采集选择无 profiling 的 DCGM counters,保持官方 SRT pin、采样时序与严格校验不变。
@cursor
cursor Bot force-pushed the fix/h200-power-noprof branch from 0c6e2a1 to 2b6e55c Compare October 1, 2026 01:20
为 H200 Kimi-K3 latency AgentX 将 benchmark grace 提到 1800s,避免默认 30s 截断导致 ProfileMetricCoverage 卡在 ~94%。

This branch has not been deployed

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

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant