Skip to content

[PowerX] add measured P75 fleet power / 新增整组 GPU 实测 P75 功耗 - #1119

Merged
edwingao28 merged 2 commits into
masterfrom
feat/powerx-p75-power
Sep 11, 2026
Merged

[PowerX] add measured P75 fleet power / 新增整组 GPU 实测 P75 功耗#1119
edwingao28 merged 2 commits into
masterfrom
feat/powerx-p75-power

Conversation

@edwingao28

@edwingao28 edwingao28 commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add Measured P75 Fleet Power per Chip alongside P90 in the inference dashboard, API metric descriptions, and ingestion allowlist. P75 uses the time-weighted percentile of synchronized fleet GPU-board power divided by GPU count; missing or unvalidated measurements stay unavailable. Official points and unofficial overlays share the existing smooth power-boundary chart behavior.

Extend the existing 34 Qwen3.5 FP8 8k/1k backfill records with P75 derived from their original raw telemetry and exact windows. All source hashes match, and existing P90 values remain unchanged. This PR prepares the backfill; it does not apply it to production. Future results require the producer changes in SemiAnalysisAI/InferenceX#2982.

The profit-estimator E2E test also waits for the dismissed Cost Tier menu to restore focus before opening Model. This fixes the dropdown handoff race without changing application behavior or weakening its option assertions.

Validation

  • Full unit suite: 6,433 passed, 4 skipped. After extending the backfill, all 148 affected DB/backfill tests passed again.
  • Cypress smoke: 51 component and 113 integration tests passed, including P75 smooth boundaries, multiple overlay runs, and zoom.
  • Typecheck, lint, formatting, and typography checks passed.
  • After the focus synchronization fix, all 42 profit-estimator tests passed against a production build in Chrome with retries disabled. A minimal cost-to-model handoff reproduced the original missing-options failure and passed after waiting for focus restoration.
  • Replayed all 34 retained traces. An independent 100,001-point numerical check agrees with P75 within 0.00557 W; existing averages agree within 0.001 W.
  • Checked the English and Chinese local previews with replayed data: 34 official points and a 16-point unofficial overlay render with the P75 selector and smooth boundaries. No new GPU measurements or production writes.

中文说明

在推理仪表板中,新增与 P90 并列的「实测整组 GPU P75 功耗(按芯片均摊)」,同步 API 指标说明与数据摄取字段。计算时先将各 GPU 功耗按时间对齐求和,再取时间加权 P75,最后除以 GPU 数量。缺少测量值或未通过验证时保持不可用。正式数据和非正式运行叠加层沿用现有平滑功耗边界。

从同一批 34 份 Qwen3.5 FP8 8k/1k 原始遥测及精确窗口补充 P75,源文件哈希全部一致,已有 P90 值不变。本 PR 只准备回填记录,尚未写入生产数据库;后续新运行自动产生 P75 依赖 InferenceX #2982。

完整单元测试 6,433 项通过、4 项跳过;补充回填后,148 项相关数据库测试再次通过。Cypress 组件和集成检查分别通过 51 项和 113 项,类型、lint、格式及排版检查通过。独立数值校验与 P75 的最大差异小于 0.00557 W。已检查中英文局部预览中的正式数据与非正式叠加层,未启动新 GPU 测量。

另修复利润估算器端到端测试中的焦点竞争:等待成本层级菜单关闭并恢复按钮焦点后再打开模型菜单,保留原有选项数量与文案断言。最小复现先重现了原错误;修复后,在生产构建上使用 Chrome、关闭重试,42 项利润估算器测试全部通过。


Note

Low Risk
Mostly additive metrics, documentation, and backfill data with strict schema-2 gating; limited runtime risk beyond chart axis selection and ETL backfill application.

Overview
Adds measured P75 fleet power per chip (y_measuredP75Power) alongside P90 across the inference UI, API metric catalog, and ingest/transform pipeline. P75 is exposed only when power_valid === 1 and power_metric_schema_version === 2, mapped through chart data like average/P90 power, included in the Measured Energy axis group and power-curve envelope behavior, with EN/ZH tooltips and docs updated to describe both percentiles.

The existing 34 Qwen3.5 FP8 8k/1k power backfill records and docs/data/power-p90-backfill.json are extended with p75_power_w / p75_total_gpu_power_w from the same raw traces and windows; P90 values are unchanged. Cypress scatter tests now assert smooth power boundaries for both average and P75; profit-estimator e2e waits for focus after closing the cost menu to avoid flaky dropdown interaction.

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

中文:新增按芯片均摊的整组 GPU 实测 P75 功耗指标,支持正式数据、非正式运行叠加层及中英文说明。复用经过验证的 34 份原始遥测补充 P75,并保留现有 P90 值。
@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
inferencemax-app Ready Ready Preview Sep 11, 2026 12:26am UTC

Request Review

@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Claude finished @edwingao28's task in 3m 25s —— View job


Claude review — complete

🟢 LGTM — no blocking issues found.

This PR adds Measured P75 Fleet Power per Chip as a strict 1:1 mirror of the already-shipped P90 metric. I traced every P90 code path and confirmed a matching P75 addition in each, verified the backfill numerics, and checked the runtime.

Static review — P75 mirrors P90 in every path:

  • metric-registry.ts (registry entry + MEASURED_ENERGY_METRIC_CONFIG_KEYS, so it surfaces in the "Measured Energy" selector group), types.ts (p75_power_w / measuredP75Power), powerCurves.ts (smooth-boundary set), benchmark-transform.ts, chart-utils.ts, metric-keys.ts, axis-metric-explanations.ts, api-documentation.ts. No P90 reference was left without a P75 counterpart.
  • The transform guard power_valid === 1 && power_metric_schema_version === 2 and the Number.isFinite chart-field guard match P90 exactly, so unvalidated/missing measurements stay unavailable as intended.

Backfill data validated (all 34 points):

  • P75 ≤ P90 holds everywhere; p75_total_gpu_power_w ÷ p75_power_w resolves to the integer GPU count (4 or 8) on every row, matching the P90 ratio.
  • The .ts tuples and docs/data/power-p90-backfill.json records agree exactly (spot-checked 441192/440673/441447 and validated the full set programmatically).
  • Backfill is prepared but not applied to production, as the PR states.

Tests: New assertions added across benchmark-transform.test.ts, chart-utils.test.ts, metric-keys.test.ts, powerCurves.test.ts, power-p90-backfills.test.ts (incl. explicit p75 ≤ p90 and per-chip ratio checks), and benchmark-mapper.test.ts. Coverage is adequate.

CI: Lint & Format ✅ passed. Unit / E2E still in progress at review time — no failures observed.

Runtime: Dashboard loads with 0 console errors. The official-path P75 render can't be exercised end-to-end because the backfill isn't in production yet (expected per the PR); the option is wired into the "Measured Energy" group and the field resolution mirrors the working P90 path.

Chinese copy: The new labelZh/titleZh/description/formula strings are a faithful port of the merged P90 Chinese copy with 90→75 substituted; accurate and natural for the surface — routine coverage, no action needed.

@blacksmith-sh

This comment has been minimized.

The profit-estimator E2E test could open Model before the dismissed Cost Tier popover restored focus, closing the model menu. Wait for the cost trigger to be collapsed and focused before continuing; preserve the existing option-count and label assertions.

中文:利润估算器端到端测试在成本层级菜单关闭并恢复焦点前打开模型菜单,导致模型菜单随即关闭。现在等待成本层级按钮收起并获得焦点后再继续,保留原有选项数量和文案断言。
@github-actions

github-actions Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Claude finished @edwingao28's task in 1m 9s —— View job


Re-review — complete

🟢 LGTM — no blocking issues found.

Only one thing changed since my prior LGTM review (which validated the P75-mirrors-P90 feature and the 34-point backfill): commit e0f5409b, a 3-line test fix in packages/app/cypress/e2e/profit-estimator.cy.ts.

What it does: After {esc} dismisses the Cost Tier popover, it waits for button#profit-cost to be collapsed (aria-expanded="false") and refocused before the test opens the Model selector. This directly addresses the two Profit Estimator per GW / opens with the documented defaults and a priced chart failures Blacksmith reported on the previous commit 1a1ce8d9 — a focus race where the model dropdown opened before Escape asynchronously restored focus to the cost trigger, immediately closing the model menu.

  • The fix is correct: pressing Escape on an open Radix Select returns focus to its trigger, so the added .should('have.attr', 'aria-expanded', 'false').and('be.focused') gate is a valid synchronization point, and it's scoped to the collapsed/refocused state rather than an arbitrary wait.
  • No production code touched — test-only delta. The existing option-count/label assertions are preserved.
  • The failing Blacksmith run was against the pre-fix commit; the current CI (Tests Unit/E2E) is re-running on e0f5409b and will confirm the fix.

Nothing new to flag. Feature paths, backfill numerics, and Chinese copy were already covered in the prior review and are unchanged.
· branch feat/powerx-p75-power

@edwingao28
edwingao28 merged commit beb0ce9 into master Sep 11, 2026
25 checks passed
@edwingao28
edwingao28 deleted the feat/powerx-p75-power branch September 11, 2026 00:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant