GPU Telemetry & Power-Efficiency Metrics Dataflow
GPU Telemetry & Power-Efficiency Metrics Dataflow
How per-vendor GPU power/energy signals flow from the collectors to the console.
NVIDIA and AMD stay in separate lanes end-to-end: they converge only in the
shared TelemetryHierarchy store, then re-split at the per-platform aggregation
so each vendor’s totals sum only its own GPUs. A mixed NVIDIA+AMD run emits both
lanes’ sections; a vendor with no reporting GPU is omitted entirely.
A self-contained, richly-styled HTML version of this diagram lives alongside
this page at gpu-telemetry-metrics-dataflow.html
(open it directly in a browser).
Dataflow
Lanes
- NVIDIA lane (green):
DCGMTelemetryCollectorandPyNVMLTelemetryCollectorwritenvidia_*fields onTelemetryMetrics. The DCGM path maps raw DCGM field names viaDCGM_TO_FIELD_MAPPING; both stampplatform="nvidia". - AMD lane (red):
AMDSMITelemetryCollectorwritesamd_power/amd_energy_consumptionand stampsplatform="amd". - Shared (blue): the single
TelemetryHierarchy, the aggregation entry point, the token/concurrency inputs, theconsole_grouprouting, the warning banner, and the per-GPU / file exporters.
Convergence and re-split
The two lanes meet in exactly one place: GPUTelemetryAccumulator stores every
record — regardless of vendor — in a single TelemetryHierarchy, with each GPU
tagged by metadata.platform. compute_efficiency_metrics then iterates
_EFFICIENCY_VENDORS and calls _sum_gpu_power_watts / _sum_gpu_energy_joules
with a (platform, field) pair, so each vendor’s sums include only its own GPUs.
This is what keeps a mixed cluster’s NVIDIA and AMD totals from blending.
Resulting console order
The disclaimer banner renders first, so it’s clear everything below it is vendor-specific:
Source of truth
src/aiperf/gpu_telemetry/— collectors,accumulator.py,constants.pysrc/aiperf/metrics/types/power_efficiency_metrics.py— the eight vendor metric classessrc/aiperf/exporters/console_*_exporter.py— the disclaimer, per-vendor efficiency, and telemetry exporters