Skip to content
heliaPROFILER
Reference
HELIA

results

What a profiling run produces: the run result, its per-layer and PMU detail, and the firmware and run metadata that say how it was measured.

Every name on this page is imported from helia_profiler.

API tier: stable

Generated from the src/helia_profiler tree fe269596788d6ab1604cf433559e96b5f48c1d13.

Machine-readable model

  • LayerResultclassProfiling result for a single model layer (averaged across iterations).
  • PresetResultclassResults for a single PMU counter preset (e.g.
  • FirmwareMetaclassMetadata reported by the profiler firmware at startup.
  • PmuResultclassComplete PMU profiling result across all presets.
  • RunMetadataclassAccumulated run metadata — enriched by stages, consumed by reports.
  • ProfileResultclassComplete profiling result — the public return type of hpx.profile().
class

Profiling result for a single model layer (averaged across iterations).

src/helia_profiler/results/models.py:42

LayerResult(
id: int | str,
op: str,
counters: dict[str, float] = dict(),
cycles: float | None = None,
overflow: bool = False,
source_index: int | None = None,
) -> None

dataclass

Profiling result for a single model layer (averaged across iterations).

source_index is the ORIGINAL tflite operator index this measured layer corresponds to, when the op label carries one (#218). id is the firmware’s execution position, which on AOT engines is NOT the original index — helia-aot skips ops without renumbering.

API tier: stable

class

Results for a single PMU counter preset (e.g.

src/helia_profiler/results/models.py:66

PresetResult(
name: str,
header: list[str] = list(),
iterations: list[list[LayerResult]] = list(),
layers: list[LayerResult] = list(),
) -> None

dataclass

Results for a single PMU counter preset (e.g. basic_cpu).

API tier: stable

class

Metadata reported by the profiler firmware at startup.

src/helia_profiler/results/models.py:97

FirmwareMeta(
model_size: int | None = None,
arena_size: int | None = None,
allocated_arena: int | None = None,
input_size: int | None = None,
output_size: int | None = None,
num_tensors: int | None = None,
num_inputs: int | None = None,
num_outputs: int | None = None,
num_presets: int | None = None,
system_clock_hz: int | None = None,
profiled_infer_count: int | None = None,
profiled_infer_total_us: int | None = None,
profiled_infer_avg_us: int | None = None,
clean_infer_count: int | None = None,
clean_infer_total_cycles: int | None = None,
clean_infer_avg_cycles: int | None = None,
clean_infer_avg_us: int | None = None,
clean_stalled_iters: int | None = None,
clean_partial_iters: int | None = None,
clean_ref_cycles: int | None = None,
clean_dwt_rate_cyc: int | None = None,
clean_dwt_rate_us: int | None = None,
clean_attach_wait_us: int | None = None,
psram: PsramInfo | None = None,
presets: tuple[str, ...] = (),
measured_clock_hz: int | None = None,
) -> None

dataclass

Metadata reported by the profiler firmware at startup.

All fields are optional because older firmware versions may not report every field.

API tier: stable

attribute

modelsize when it is a usable byte count, else None.

src/helia_profiler/results/models.py:164

reported_model_bytes: int | None

model_size when it is a usable byte count, else None.

The wire parser keeps an unparseable HPX_MODEL_SIZE as the raw string it received, so a corrupted or foreign line reaches consumers as text. Anything that needs a number asks here instead of assuming; the raw value stays on model_size so diagnostics can still quote what the device actually said (#281).

class

PmuResult

Python

Complete PMU profiling result across all presets.

src/helia_profiler/results/models.py:179

PmuResult(
meta: FirmwareMeta,
presets: dict[str, PresetResult] = dict(),
layers: list[LayerResult] = list(),
overflow_detected: bool = False,
groups: dict[str, list[LayerResult]] = dict(),
) -> None

dataclass

Complete PMU profiling result across all presets.

API tier: stable

class

Accumulated run metadata — enriched by stages, consumed by reports.

src/helia_profiler/results/models.py:285

RunMetadata(
hpx_version: str = '',
run_id: str = '',
timestamp: str = '',
config_snapshot: dict[str, Any] = dict(),
platform: PlatformInfo | None = None,
model: ModelInfo | None = None,
toolchain: ToolchainInfo | None = None,
build_images: tuple[BuildImage, ...] = (),
engine: EngineInfo | None = None,
firmware: FirmwareMeta | None = None,
memory_plan: 'MemoryPlan | None' = None,
timing: TimingInfo | None = None,
compatibility: CompatibilityResolution | None = None,
dependencies: 'DependencyProvenance | None' = None,
) -> None

dataclass

Accumulated run metadata — enriched by stages, consumed by reports.

API tier: stable

class

Complete profiling result — the public return type of hpx.profile().

src/helia_profiler/results/models.py:595

ProfileResult(
pmu: PmuResult,
power: PowerResult | None = None,
power_observation: PowerObservation | None = None,
power_terminal: PowerTerminalRecord | None = None,
on_device_power: OnDevicePowerSummary | None = None,
metadata: RunMetadata = RunMetadata(),
report_paths: list[Path] = list(),
) -> None

dataclass

Complete profiling result — the public return type of hpx.profile().

This is the one object a programmatic user needs. It carries everything: PMU data, optional power data, run metadata, and report file paths.

API tier: stable


Machine-readable: results.json · results.md, complete and lossless.