
Profile LiteRT and ExecuTorch models on Ambiq hardware.#
Build, flash, measure, and compare models with heliaRT, heliaAOT, a stock TFLM baseline, or the Cortex-M ExecuTorch runtime.
Alpha
heliaPROFILER is pre-1.0. Breaking changes may land on minor versions until v1.0 — pin an exact version for anything long-lived.
Features#
-
End-to-end profiling
Cycle counts, instruction counts, cache stats, and per-layer PMU breakdowns — all from a single
hpx profilecommand. -
Four engines
Profile with vanilla TFLM, heliaRT (interpreter), heliaAOT (ahead-of-time compiler), or ExecuTorch — one explicit engine per run.
-
Apollo 3 / 4 / 5
Built-in platform definitions for every Ambiq SoC family. Full Armv8‑M PMU on AP5, DWT cycle counts on AP3/AP4.
-
Power measurement
GPIO-gated JS110/JS220/JS320 capture with a dedicated transport-free firmware image for current, voltage, and energy per inference.
-
Host-only model analysis
Inspect MACs, parameters, tensor sizes, and AOT graph transforms before connecting a board.
-
Comparison and regression policy
Compare compatible result bundles, find the largest layer deltas, and apply versioned metric thresholds.
-
Model Explorer overlays
Export per-layer metrics as JSON overlays for Model Explorer — see hot operators at a glance.
-
YAML + CLI config
Declarative config merged with CLI flags. Frozen and immutable — no surprises mid-run.
-
Verifiable result bundles
Machine-readable summaries, per-layer data, provenance, validity issues, and a manifest with artifact sizes and SHA-256 digests.
-
Python and notebook API
Typed
profile()results and immutableSessionworkflows for interactive exploration and automation.
How it works#
- Install heliaPROFILER and its dependencies.
- Check that the ARM toolchain, J-Link, and NSX are available.
- Profile with defaults — heliaRT, GCC, RTT capture, CPU counters, on the
connected Apollo510 EVB. Results land in
./results/.
The pipeline handles engine resolution, firmware generation, build, flash, capture, and report output. Start with Output & Results to understand the portable bundle produced by a successful run.
Where to start#
Pick the path that matches what you're trying to do:
-
First time here?
Install the toolchain and profile your first model in minutes.
-
Configuring a run
YAML config, CLI flags, engine options, board selection, memory placement, PMU counters, and power measurement.
-
Doing a specific task
Short recipes for common scenarios (basic profiling, engine comparison, power capture), plus worked patterns for multi-feature workflows.
-
Integrating or automating
Every
hpxsubcommand and flag, the configuration schema, and theprofile()Python API for calling heliaPROFILER programmatically. -
Analyzing or comparing
Inspect a model without hardware, compare two runs, or define regression thresholds for repeatable experiments.
-
Working in Python
Use the typed API and branchable session workflow from scripts or notebooks.
About the numbers in these docs
Sample power, energy, and latency values shown throughout this site
(mA, mW, µJ, cycle counts) are illustrative placeholders, not real
captured measurements. Your own hardware, model, and configuration
will produce different numbers — run hpx profile to get yours.