Skip to content

[PowerX] backfill GLM-5.2 FP8 B300 SGLang AgentX power / [PowerX] 补采 GLM-5.2 FP8 B300 SGLang AgentX 功耗 - #4702

Merged
edwingao28 merged 4 commits into
mainfrom
chore/glm52-b300-power-backfill
Nov 3, 2026
Merged

edwingao28 merged 4 commits into
mainfrom
chore/glm52-b300-power-backfill

Conversation

@edwingao28

@edwingao28 edwingao28 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

GLM-5.2 FP8 B300 SGLang AgentX publishes no measured power. Its curve (8 points, 2026-10-14) predates B300 single-node power collection. This reruns the unchanged config; only the changelog changes, so infx.matrix.changed lists no keys. The FP4 curve is not rerun because its weights left B300.

Testing: sweep 41347984144 at 3b3b616: 8/8 points strict power, gsm8k 0.967, at most 0.2% request errors. Output throughput per GPU is within 1.1% of the 2026-10-14 curve, except conc 12 at 8% lower.

AI model disclosure
  • Model/version: claude-opus-5-5 (Claude Code).
  • Role: power coverage audit, sweep verification, and PR preparation.
PR checklist and change type

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other (please describe): rerun of unchanged configs to collect power

Checklist

  • I have completed the AI model disclosure and kept it current
  • I have tested my changes locally
  • I have updated documentation if necessary
  • If python -m infx.matrix.changed --base origin/main lists affected config keys, I have appended one new entry covering them to the physical end of inferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entries
  • If this PR appends an inferencex-e2e/perf-changelog.yaml entry, it carries exactly one primary sweep label (a maintainer applies it on fork PRs): full-sweep-fail-fast (recommended), full-sweep-enabled, or non-canary-full-sweep-enabled. Optional modifiers all-evals, evals-only, and agentx-fast require a primary label; the last two block reuse while applied.
  • 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 primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.
中文

GLM-5.2 FP8 B300 SGLang AgentX 目前没有实测功耗。其曲线(8 个点,2026-10-14)早于 B300 单节点功耗采集上线。本 PR 重新运行这个未改动的配置,只新增 changelog 条目,因此 infx.matrix.changed 不会列出任何配置。FP4 曲线的权重已从 B300 移除,因此不再重跑。

测试: sweep 41347984144(3b3b61620):8/8 个点通过严格功耗校验,gsm8k 得分 0.967,请求错误率最高 0.2%。每 GPU 输出吞吐量与 2026-10-14 曲线相差不超过 1.1%,并发 12 除外(低 8%)。

AI 模型:claude-opus-5-5(Claude Code),负责功耗覆盖率审计、sweep 验证和 PR 准备。

中文:重新运行 GLM-5.2 B300 SGLang AgentX 以采集功耗
@github-actions

github-actions Bot commented Nov 1, 2026

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 run only when the PR appends an inferencex-e2e/perf-changelog.yaml entry and carries exactly one primary label: full-sweep-fail-fast (strongly recommended; canary plus per-matrix fail-fast), full-sweep-enabled (canary; matrix jobs continue after a failure), or non-canary-full-sweep-enabled (no canary or fail-fast). The modifiers all-evals, evals-only, and agentx-fast require a primary label. On fork PRs, a maintainer applies the label. See sweep labels and reuse.
  • 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 在 inferencex-e2e/perf-changelog.yaml 末尾追加了条目,并且恰好带有一个主标签时,才会运行扫描:full-sweep-fail-fast(强烈推荐;canary 加逐矩阵 fail-fast)、full-sweep-enabled(有 canary;矩阵任务在失败后继续运行)或 non-canary-full-sweep-enabled(无 canary,也无 fail-fast)。修饰标签 all-evals、evals-only 和 agentx-fast 必须与主标签一起使用。fork PR 的标签由维护者添加。参见扫描标签与复用。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

@edwingao28
edwingao28 force-pushed the chore/glm52-b300-power-backfill branch from 8995a23 to fabd953 Compare November 1, 2026 09:48
@edwingao28 edwingao28 added the full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) label Nov 1, 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.

Findings marked 🟡 are optional suggestions and need no follow-up push.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
- glm5.2-fp8-b300-sglang-agentic-mtp
description:
- "Rerun the unchanged FP4 and FP8 configs to collect GPU-board power. Their published curves (2026-10-12 and 2026-10-14) predate B300 single-node power collection and carry no power fields."
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/PENDING

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.

🔴 The changelog validator will fail this PR, and the merge helper will refuse it, because the new entry's pr-link placeholder is not one the tooling accepts. validate_added_pr_link (validate_perf_changelog.py:113) only accepts the canonical PR URL or an entry in PR_LINK_PLACEHOLDERS, which is XXX or .../pull/XXX. .../pull/PENDING matches neither, and no other entry uses it. Fix: set pr-link to https://github.com/SemiAnalysisAI/InferenceX/pull/XXX, which the merge helper rewrites, or to this PR's real number.

Why this was flagged

The appended block at inferencex-e2e/perf-changelog.yaml:11778 has pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/PENDING. On a PR run, validate_added_pr_link (inferencex-e2e/infx/workflows/validate_perf_changelog.py:105-116) raises ChangelogValidationError "new PR entry must use '.../pull/' or an XXX placeholder; found '.../pull/PENDING'" because the link is not in PR_LINK_PLACEHOLDERS (validate_perf_changelog.py:21-24, only "XXX" and ".../pull/XXX") and is not the canonical PR URL. The merge path fails the same way: prepare_perf_changelog_merge.py:108-111 raises "appended entry N has unexpected pr-link" instead of replacing the placeholder with the real link. As a result, the changelog check fails and the reuse merge cannot complete. A sweep that never starts would also leave the power backfill uncollected. No other entry in perf-changelog.yaml uses PENDING, so there is no precedent the tooling tolerates.

Verification: The new block at inferencex-e2e/perf-changelog.yaml:11778 has pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/PENDING. PR_LINK_PLACEHOLDERS (validate_perf_changelog.py:21-24) holds only "XXX" and ".../pull/XXX". merge_with_reuse.py:688 always calls canonicalize_changelog(pr, repo). So the helper raises and the merge is refused. The PR sweep validation therefore passes.

Comment thread inferencex-e2e/perf-changelog.yaml Outdated
Comment on lines +11773 to +11777
- config-keys:
- glm5.2-fp4-b300-sglang-agentic-mtp
- glm5.2-fp8-b300-sglang-agentic-mtp
description:
- "Rerun the unchanged FP4 and FP8 configs to collect GPU-board power. Their published curves (2026-10-12 and 2026-10-14) predate B300 single-node power collection and carry no power fields."

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.

🟡 (optional) A green sweep can be reused and merged with no valid power for any of the 19 points, so the backfill can silently fail at its only goal. Power for single-node AgentX points is best-effort. On an invalid measurement the job records an invalid verdict and still passes. The require-power switch exists only for fixed-sequence 8192/1024 (infx/matrix/generate.py:1000), so it cannot be set on these points. Fix: before /use, check that every FP4 and FP8 point in the chosen run has a valid power verdict with energy metrics. A green sweep alone does not show this, so add a power check to the PR's testing claim.

Why this was flagged

The only purpose of this entry is to collect GPU-board power for glm5.2-fp4-b300-sglang-agentic-mtp and glm5.2-fp8-b300-sglang-agentic-mtp, which run single-node on cluster:b300-dsxe (configs/nvidia-master.yaml:5871-5905). For single-node points, bind_workload sets telemetry.required and REQUIRE_POWER from the point's REQUIRE_POWER (infx/srt_slurm/workload.py:339-342). AgentX rows never carry it: require-power is only accepted for fixed-sequence 8192/1024 (infx/matrix/generate.py:999-1001), and the AgentX power adapter returns 0 unless require_power is set (infx/results/agentic/power_adapter.py:144-147). CONFIGS.md:286-288 says an invalid measurement "otherwise records an invalid verdict without energy metrics" and does not fail the job. Trigger: the DCGM exporter fails to start, or windows come out invalid on any B300 node. The sweep still goes green, /use and merge_with_reuse accept it, and the republished curves still lack power. The PR description's "The PR sweep is the GPU proof" does not hold for power.

Verification: Trigger: the PR sweep's native telemetry for any of the 19 GLM-5.2 B300 AgentX points comes out invalid. The sweep-agentic job (.github/workflows/run-sweep.yml:530-548) passes no require-power, so power_adapter.py:395-410 writes power_valid: False and the job stays green. The base branch already has no power for these curves, and the manual /use gate can catch it by checking the power_audit_* verdicts.

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

NVFP4 weights were removed from B300; GLM-5.3 FP4 B300 already publishes strict power.

中文:从功耗回填中移除 GLM-5.2 FP4 B300。B300 上的 NVFP4 权重已被删除;GLM-5.3 FP4 B300 已发布严格功耗数据。
@edwingao28

Copy link
Copy Markdown
Collaborator Author

/use 41347984144

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

@edwingao28 staged run 41347984144.

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

@edwingao28 edwingao28 changed the title [PowerX] backfill GLM-5.2 B300 SGLang AgentX power / [PowerX] 补采 GLM-5.2 B300 SGLang AgentX 功耗 [PowerX] backfill GLM-5.2 FP8 B300 SGLang AgentX power / [PowerX] 补采 GLM-5.2 FP8 B300 SGLang AgentX 功耗 Nov 2, 2026

@functionstackx functionstackx left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approved for the GLM-5.2 FP8 B300 SGLang AgentX power backfill. The diff only appends its changelog entry; the full sweep and agentic eval passed at the reviewed head, and /use 41347984144 is recorded. Resolve the merge conflict before merging through the reuse path.

中文

批准 GLM-5.2 FP8 B300 SGLang AgentX 功耗补采。本次差异仅追加对应的 changelog 条目;所审阅提交的完整 sweep 和 agentic eval 均已通过,且已记录 /use 41347984144。请先解决合并冲突,再通过复用流程合并。

…ackfill

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@edwingao28

Copy link
Copy Markdown
Collaborator Author

/reuse-sweep-run 41347984144

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@edwingao28
edwingao28 merged commit 808db58 into main Nov 3, 2026
28 checks passed
@edwingao28
edwingao28 deleted the chore/glm52-b300-power-backfill branch November 3, 2026 07:38
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Ingest report — ✅ Results ingested into the production database.

Ingest workflow · Merge Ingest run · Benchmark source run

Category new duplicate skipped unmapped failed
benchmark 8 0 8 0 0
eval 1 1 1 0 0
trace 8 0 0 0 0
power 8 0 0 0 0

benchmarkFiles 9, rawBenchmarkRows 16, coveredByPerJobFiles 8, purgedPoints 0, failedRunRows 0, runStatsNew 0, runStatsDuplicate 0, evalSamplesNew 1319, gpuMetricSamplesNew 325616, powerPublicationPoints 8, changelogEntriesWritten 1

Counts cover only this run. Rows: benchmark_results, eval_results, agentic rows linked to a trace, gpu_metrics series. This comment updates if the ingest is rerun.

中文

Ingest 报告 — ✅ 结果已写入 production 数据库。

上表仅统计本次运行写入的数据,各行单位依次为 benchmark_results 行、eval_results 行、已关联 trace 的 agentic 行和 gpu_metrics 序列。重新运行 ingest 时本评论会原地更新。

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

Labels

full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants