Skip to content
heliaPROFILER
Home
HELIA

heliaPROFILER

Find the bottleneck.
Test the next idea.

heliaPROFILER (hpx) is a command-line toolkit for profiling AI models on Ambiq hardware. Measure inference latency, find costly layers, and compare engine and memory choices using saved results.

01 / Inference and layer timing

One complete inference
Convolution
Depthwise
Fully connected

Find where the time goes.

Measure the full inference, then use per-layer timings to decide what to optimize.

Measure · Inspect · Compare

From setup to a side-by-side comparison.

Check your tools, find a debug probe and profile the heartKIT AFIB arrhythmia classifier. Compare LiteRT with heliaAOT to see the difference in latency and model memory.

Run your first profile →

Setup output shows an illustrative connected probe. Commands are illustrative excerpts, not a runnable recipe: afib.yml stands for your own configuration file. The tables show measured profiling results. Select a step to explore; click the active step to pause or resume.

$ hpx doctor
Toolchain Check
✓ CMake (>= 3.24)
✓ Ninja build system
✓ SEGGER J-Link commander
✓ neuralspotx Python package
✓ ARM GCC toolchain
All required tools found.
Abbreviated CLI excerpts · measured profiling example
Find the bottleneck

Understand the cost of inference.

Measure the model as a whole, then investigate the operations and hardware activity behind the result.

Measure the model. Locate the cost.

Start with latency from a clean inference window, then inspect a separate instrumented pass to find the operators worth optimizing.

heartKIT AFIB · heliaAOT12.14 msMedian latency · Apollo510 @ 96 MHz
  1. Establish the baselineMeasure the complete inference without per-layer counter reads. Keep the model, clock and measurement settings with the result.
  2. Rank the expensive operatorsInspect cycles and each layer’s share of the instrumented total. Start with the layers that account for the most work.
  3. Test a targeted improvementTry another engine or memory placement, then compare the saved runs to see whether whole-model latency improved.
Understand timing and measurement boundaries →

Investigate costly layers

Look beyond cycle counts. On supported targets, inspect memory accesses, processor stalls and MVE activity alongside each operator.

Use the counters to investigate whether memory placement or kernel execution deserves a closer look. Available counters depend on the target.

Explore counters →

Include power and energy

Capture the monitored supply with a supported Joulescope or INA228. Read power during the measurement window and energy per inference.

Save the capture with the run, inspect its validity and compare energy alongside latency. Requires a configured power monitor.

Set up power capture →
Compare your options

Put your next idea to the test.

Compare timing, memory and energy alongside the settings that produced them. hpx flags incompatible measurements and leaves out per-layer differences when operation sequences do not match.

Evaluate engines and compilers

Keep the model and target fixed, then measure the effect of an engine or compiler change.

Compare engines →

Explore memory placement

Try supported placements for weights and working memory, then measure the effect on your target.

Plan memory →

Inspect the model graph

View captured layer measurements on the model graph. Use host-side model analysis to inspect operations and tensor sizes before connecting a board.

Explore the graph →
Build a repeatable workflow

Keep runs reproducible and results reusable.

Each result bundle keeps measurements, configuration and source information together. Revisit a run, share it with a colleague or analyze its CSV and JSON reports.

Browse result files →

Repeat runs and check regressions

Save settings in YAML and define regression limits for automated comparisons.

Compare and check runs →

Work in scripts and notebooks

Use the Python Session API to run profiles and analyze results with the same configuration model as the CLI.

Explore the Python API →
Get started

Choose a setup for your first run.

13 boards · 3 toolchains

Profile with LiteRT, heliaRT or heliaAOT. Apollo510 EVB and Apollo3P EVB are the 2 stable boards in the registry. Other targets are preview or experimental. Check the tested combinations for engine support and available measurements.