Skip to main content

An ahead-of-time nn compiler for Ambiq SoCs.

Project description

heliaAOT

Bring blazing-fast, ultra-compact neural inference to Ambiq’s ultra-low-power SoCs—without a runtime.

CI Docs Build Wheel Release

heliaAOT is an ahead-of-time (AOT) compiler that converts front-end models (e.g., TFLite/ONNX) into stand-alone C inference modules optimized for Ambiq microcontrollers. By shifting codegen to build-time and eliminating the runtime interpreter, heliaAOT delivers compact, readable C with zero arena-guesswork and no dead code.


✨ Why heliaAOT?

  • Smaller binaries – Generate only the code you need. No interpreter, no dead kernels.
  • Deterministic memory – Context-level memory planning; stop guessing arena sizes.
  • Readable output – Layer-mirrored C files for fast bring-up and debugging.
  • Ambiq-tuned – Optimized for Cortex-M (M4/M55/Helium) on Ambiq SoCs.
  • Production-ready – Drop into Zephyr/neuralSPOT or your existing build system.

🚀 Quick Start

Option A: Download a standalone CLI

Prebuilt binaries (no Python required):

See the Releases page for downloads and checksums.

Run:

./helia-aot --help

Option B: Install via pipx

pipx install --python python3.12 "git+https://github.com/AmbiqAI/helia-aot.git@main"
helia-aot --help

We recommend pipx because it installs Python apps in isolated, self-contained environments and puts the CLI on your PATH.

Option C: Install from source

git clone https://github.com/AmbiqAI/helia-aot.git
cd helia-aot
uv sync
uv run helia-aot --help

🧭 First Conversion

helia-aot convert \
  --model.path ./models/ad01_int8.tflite \
  --module.path ./out \
  --module.name ad01_aot

What you get:

out/ad01_aot/
├── LICENSE               # License for the generated module
├── README.md             # Module usage notes
├── includes-api/         # Public C headers
├── src/                  # Operator implementations
└── module.mk

Drop the folder into your firmware tree and build like any other C module.


🛠️ Current CLI

heliaAOT currently exposes a single primary command:

  • convert – Convert a TFLite/ONNX model into a C inference module.

    helia-aot convert --help
    

    We follow “progressive disclosure of complexity.” The CLI starts simple; advanced flags and expert workflows are documented in the site’s How-to and Reference sections.


📚 Documentation

  • Getting Started: the fastest way from model → C module
  • How-To: step-by-step recipes for common tasks
  • Reference: full list of commands/flags
  • Guides: end-to-end projects and best practices
  • Benchmarks: performance and size comparisons
  • API: for power users who integrate deeper

The docs are written for CLI users first; you don’t need to know (or care) that the tool is implemented in Python.


🔌 Supported Inputs & Targets

Inputs

  • LiteRT/TFLite (int8/int16)

Targets

  • Ambiq SoCs (Cortex-M4, M55/Helium)
  • Integration paths: Zephyr module, neuralSPOT, or make/CMake projects

🧩 What the Generated C Looks Like

  • A compact operator library: only kernels required by your model.
  • A structured init() / run() style API with clear I/O.
  • Compile-time tensor shapes and a fixed memory plan.
  • Optional operator callbacks for instrumentation/telemetry.

🧪 Testing & Quality

  • Continuous Integration runs linting and unit tests
  • Deterministic builds and reproducible outputs where possible
  • Example apps and benchmarks in the docs

⚙️ Development (optional)

If you do want to contribute or run from source:

# Using uv (fast Python package manager)
uv sync
uv run helia-aot --help

# Or with pip + virtualenv
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
helia-aot --help

See CONTRIBUTING.md for coding standards, testing, and PR guidelines.


🗺️ Roadmap

The project roadmap and features can be found on the GitHub Projects page.

We prioritize features that keep binaries tiny, predictable, and fast.


💬 Support & Feedback


📄 License

heliaAOT generates C modules that include a license header restricting use to Ambiq hardware. See the generated module’s LICENSE.txt for terms and the repository’s LICENSE for tooling.


Ready to dive in? Head over to the Getting Started guide and generate your first module in minutes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

helia_aot-0.16.0.tar.gz (253.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

helia_aot-0.16.0-py3-none-any.whl (403.3 kB view details)

Uploaded Python 3

File details

Details for the file helia_aot-0.16.0.tar.gz.

File metadata

  • Download URL: helia_aot-0.16.0.tar.gz
  • Upload date:
  • Size: 253.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for helia_aot-0.16.0.tar.gz
Algorithm Hash digest
SHA256 78e53aa214c9a70a579e987ec0bf4932a07187a639e35ea616f378a2f6c75f0f
MD5 97677f79c0bf382a15165c472845e38f
BLAKE2b-256 2b586335a8799ffdb9cb7f9d1881acc66e3ffc221cc7ea973343e2c6ac56c2cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for helia_aot-0.16.0.tar.gz:

Publisher: release.yml on AmbiqAI/helia-aot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file helia_aot-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: helia_aot-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 403.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for helia_aot-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b05c601458cbf75765db88ad74621b2354992494e3080931a1b921b4106c4f94
MD5 b9051abf6e68b2dd255d53ffa1ff245d
BLAKE2b-256 8f4cb22b09bea8ff519064aeb3ee6e8e0b8b29fe46556610510e6b6effbaa811

See more details on using hashes here.

Provenance

The following attestation bundles were made for helia_aot-0.16.0-py3-none-any.whl:

Publisher: release.yml on AmbiqAI/helia-aot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page