Skip to content

Pin mlc_default power values to Appendix D - #122

Closed
arav-agarwal2 wants to merge 1 commit into
mainfrom
fix/pin-appendix-d-defaults
Closed

arav-agarwal2 wants to merge 1 commit into
mainfrom
fix/pin-appendix-d-defaults

Conversation

@arav-agarwal2

Copy link
Copy Markdown
Collaborator

What

A system_power.json value with source_type: mlc_default used to be trusted at whatever number it stated, and any D.1–D.4 was accepted for any field. For example, a B300 at {value_w: 500, source: D.3} passed. Appendix E.1 makes a default "its own reference", so it now has to be the Appendix D figure:

  1. Subsection. The cited subsection must be the one Appendix D uses for the field: D.1 for scale-up (tdp_per_switch, energy_per_bit_pj), D.2 for cpu.tdp_per_unit, D.3 for accelerator.tdp_per_unit, and D.4 for scale-out power_per_switch and tdp_per_nic.
  2. Value. The value must equal that table's entry for the component. D.3 is looked up by accelerator model. D.2 is looked up by architecture and core count. D.4 is looked up by switch model and the declared cabling. The NIC default is 75 W, and the D.1 energy-per-bit default is 5 pJ/bit.
  3. No default to cite. Some fields have no Appendix D default: published_power, combined_cpu_accelerator and declared_provisioned_power. Appendix D also lists no figure for some models (an unlisted accelerator, ARM above 128 cores, an SN4700 with active optical cabling). None of these can be mlc_default.

A misquoted default is a rejection where it reaches provisioned_power_kw. Under a governing declared_provisioned_power the component block is only a cross-check (E.1, E.6.2), so there it is a warning. Descriptors whose declared figure governs are not broken.

The table stays in one place, src/submission_checker/power_defaults.py. That module already held the D.2/D.3/D.4 values used for auto-population. It now also has SUBSECTIONS, which maps each field to its subsection, plus the D.1 constants and cpu_default_candidates. Messages are in messages.yaml, and the README describes the behaviour.

Ambiguities resolved

  • D.1 Ethernet. The Ethernet reference is 3.5 kW per switch at 10.8 TB/s per direction, scaled to the switch's bandwidth (C.7). declared_tdp does not carry that bandwidth, so a D.1 tdp_per_switch is checked by subsection only and gets a warning.
  • D.1 energy per bit. energy_per_bit_pj must be 5 pJ/bit, the only energy-per-bit figure D.1 states. An Ethernet-derived pJ/bit is not a stated D.1 value, and the Ethernet point belongs on the declared_tdp path.
  • D.2 row unknown. Sometimes no D.2 row can be chosen, because the model name doesn't reveal the architecture or system_desc.json gives no core count. Then a value equal to one of the D.2 figures still open gets a warning, and any other value is rejected.
  • Units and tolerance. value_kw is converted to watts. Appendix D gives no tolerance, so values are compared exactly, allowing only for float noise.

No valid fixtures use mlc_default, so nothing needed regenerating.

Closes gap-analysis item B2.

🤖 Generated with Claude Code

A system_power.json value sourced as mlc_default was trusted at whatever it
stated, citing any Appendix D subsection. E.1 makes a default its own
reference, so hold it to the figure Appendix D gives: the subsection must be
the one defining the field (D.1 scale-up, D.2 CPU, D.3 accelerator, D.4
scale-out switches and NICs), and the value must equal that table's entry for
the model (and cabling). Fields with no Appendix D default, and unlisted
models, cannot be mlc_default. Misquotes reject where they reach the total
and warn in a cross-check block under a declared figure (E.6.2).

Closes gap-analysis item B2.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅

@arav-agarwal2

Copy link
Copy Markdown
Collaborator Author

Review: Generally ok, but it's not a high priority as rules come in. Merge after rules get clearer.

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