Module energy_sampler

Module energy_sampler 

Source
Expand description

2026-09-26: The I/O half of in-window energy: one long-lived nvidia-smi -lms child whose lines a background task parses, plus the per-run EnergyMeter.

Owner: bench hardware. Invariants:

  • EnergyMeter samples only a loopback target: the sampler reads the local GPU, which is the serving GPU only then.
  • When the sampler cannot start, the meter holds no sampler, baseline or cost, so the record carries no gpu_rail_* keys: absent, never zero.

One child rather than a spawn per sample: measured 2026-09-20 on GB10, a single nvidia-smi spawn cost 10–20 ms of CPU, while the loop-mode child used 0.02 s of CPU over 10 s at 250 ms. The child’s CPU time is read when it is stopped and goes on the record (SamplerCost).

Structs§

EnergyMeter
2026-09-26: The energy lifecycle of one benchmark run: start the sampler (loopback targets only), take the idle baseline, hand out per-window integrals, stop and report the cost. The concurrency sweep and decode-floor drivers hold one as a field and log the lines it returns.
EnergySampler