Skip to content

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.

Get Started GitHub

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 profile command.

  • 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 immutable Session workflows for interactive exploration and automation.


How it works#

pip install helia-profiler          # (1)!
hpx doctor                          # (2)!
hpx profile model.tflite            # (3)!
  1. Install heliaPROFILER and its dependencies.
  2. Check that the ARM toolchain, J-Link, and NSX are available.
  3. 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.

    Getting Started

  • Configuring a run


    YAML config, CLI flags, engine options, board selection, memory placement, PMU counters, and power measurement.

    User Guide

  • Doing a specific task


    Short recipes for common scenarios (basic profiling, engine comparison, power capture), plus worked patterns for multi-feature workflows.

    Examples · In-Depth Guides

  • Integrating or automating


    Every hpx subcommand and flag, the configuration schema, and the profile() Python API for calling heliaPROFILER programmatically.

    Reference

  • Analyzing or comparing


    Inspect a model without hardware, compare two runs, or define regression thresholds for repeatable experiments.

    Analysis & Run Comparison

  • Working in Python


    Use the typed API and branchable session workflow from scripts or notebooks.

    Interactive Python

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.