Releases: arm/mlia-ethos-u
Releases · arm/mlia-ethos-u
Release list
v0.1.0
v0.1.0 Release notes
Overview
v0.1.0 is the first public release of mlia-ethos-u, the ML Inference Advisor plugin package for Arm Ethos-U NPUs. It includes the Ethos-U target plugin, Vela compiler integration, Corstone simulation backends, and bundled target profiles.
This release brings together all development since the repository’s initial commit.
Supported targets:
- Ethos-U55: 128 and 256 MAC configurations.
- Ethos-U65: 256 and 512 MAC configurations.
- Ethos-U85: 128, 256, 512, 1024, and 2048 MAC configurations.
Features included in this release:
- Model compatibility analysis: Check LiteRT / TensorFlow Lite (.tflite) models for operator support and placement, with advice on unsupported operations and inefficient activation functions.
- Vela performance estimation: Analyze TFLite and TOSA (.tosa, .tosamlir) models, with metrics covering cycles, inference time, throughput, utilization, memory usage, and memory access costs where available.
- Corstone simulation: Run supported workloads through Corstone-300, Corstone-310, and Corstone-320, reporting model-wide NPU active, idle, and total cycles, utilization, and AXI traffic counters.
- PyTorch and ExecuTorch workflows: Analyze exported PyTorch (.pt2) models through the optional mlia-converters-pytorch plugin, using TOSA for Vela estimates or ExecuTorch AOT conversion for supported Corstone runs. Prepared ExecuTorch (.pte) workloads can also run directly on supported Corstone backends.
- Layer hotspot analysis: Identify expensive operators, low MAC utilization, and memory pressure where per-layer data is available.
- CLI and Python API integration: Access Ethos-U analysis through the MLIA CLI or programmatically, including structured results from run_advisor.
- Standardized reporting: Console and JSON output include backend attribution, result-level advice, warnings, and operator or layer breakdowns where available. Vela estimates and Corstone measurements retain distinct result scopes.
- Traceable metrics: Preserve TFLite source operator IDs and associate performance breakdowns with source operators where possible. Layer metrics include explicit aggregation policies for additive work and peak memory usage.
- Robust JSON output: Inference times use milliseconds; non-finite optional Vela metrics are omitted, and required metrics that cannot be derived are marked unavailable with a reason.
- Backend setup: Lazy loading supports MLIA’s first-use backend installation flow. Corstone-320 supports its bundled Python runtime, and backend resources are discovered across MLIA resource directories.
- Usability and documentation: Input validation, clearer backend failure reporting, Python logging integration, paging for long Vela operator listings, CLI and backend guides, troubleshooting documentation, and a Python API walkthrough notebook.
Requirements and support limits:
- Requires Python 3.10 or later and MLIA 0.12.2.
- Corstone backends support Linux on x86-64 and AArch64 and require acceptance of the applicable backend EULA.
- Direct .pt2 input requires mlia-converters-pytorch.
- ExecuTorch performance supports Ethos-U55 with Corstone-300 and Ethos-U85 with Corstone-320.
- Ethos-U65 .pte performance is unsupported. For Ethos-U65 PyTorch performance estimates, use the original .pt2 input with Vela.
- TOSA performance analysis uses Vela. Vela does not accept .pte inputs.
- Reported performance figures refer to the NPU only.
v0.1.0rc2
What's Changed
- ci: Require Black Duck before syncing main and release commits by @max-shvetsov
- ci: Pin public sync to the merged workflow commit by @max-shvetsov
Full Changelog: v0.1.0rc1...v0.1.0rc2
v0.1.0rc1
What's Changed
- fix: Ignore coverage.xml which is generated from tests now by @Mousius
- fix: Use same commitizen rules as mlia-core by @Mousius
- fix: Don't over-restrict package contents by @Mousius
- build: Add internal PR review steps by @Mousius
- fix: Search backend resources across MLIA resource directories by @feibi-allen
- fix: Do not reload plugins in plugin init by @Mousius
- feat: Add proof of concept for layer hotspot analysis by @feibi-allen
- fix: Remove not in tflite compatability check by @logan-scully-arm
- ci: Add codeowners file by @logan-scully-arm
- feat: Enable Vela backend to consume TOSA graphs as input by @IsabellaARM
- test: Improve test coverage and format in advisor by @logan-scully-arm
- tests: Refactor and fix Advice Generation tests by @logan-scully-arm
- fix: Change writing to stdout to use standard Python logging by @feibi-allen
- test: Improve coverage in config tests by @logan-scully-arm
- feat: Implement E2E tests by @Mousius
- test: Improve coverage in common reporters and operators by @logan-scully-arm
- test: Improve testing in performance and pattern analysis by @logan-scully-arm
- test: Implement improved testing in data analysis by @logan-scully-arm
- feat: Add Python API support for Ethos-U target plugin by @jedgar-arm
- docs: Add Jupyter notebook for API by @IsabellaARM
- fix: Allow Ethos-U advisors to override performance collector class by @jedgar-arm
- docs: Improve documentation by @IsabellaARM
- feat: Remove advice for legacy optimization by @IsabellaARM
- feat: Modernize license in toml by @IsabellaARM
- docs(openspec): add agent guidance and tool setup by @Mousius
- Executorch aot by @feibi-allen
- test: Add Ethos-U Python API e2e tests by @jedgar-arm
- docs: Update documentation for pt2 inputs by @IsabellaARM
- feat: Auto-install backends on a first run by @max-shvetsov
- feat: Add flow to accept pte files by @feibi-allen
- fix: Update CLI tests for latest mlia-core by @max-shvetsov
- ci: Sync releases to public repo by @Mousius
- Add Vela standardized performance metrics by @jedgar-arm
- Fix vela lazy loading tests by @feibi-allen
- docs: clarify bug reporting issue routing by @logan-scully-arm
- Add Ethos-U performance field refinements by @jedgar-arm
- fix(output): Use result-level advice in sidecar JSON by @jedgar-arm
- build: Pin mlia and add trademark notices by @max-shvetsov
- feat: Use new transformer interface by @logan-scully-arm
- Add Vela and Corstone performance JSON metrics by @jedgar-arm
- fix: Emit Vela inference time in milliseconds by @jedgar-arm
- feat: Validate user input by @feibi-allen
- docs: Documentation updates by @IsabellaARM
- test: Update tests to current mlia HEAD by @oluwatamilore-arm
- feat: Bump mlia-core version to 0.12.0<0.13 by @max-shvetsov
- feat: Add contribution guidelines by @max-shvetsov
- fix: Remove brittle Ethos-U E2E table assertions by @max-shvetsov
- feat: Introduce vault secrets by @oluwatamilore-arm
- ci: Read uv default index from Vault by @max-shvetsov
- feat: Use LiteRT instead of Tensorflow Lite by @IsabellaARM
- test: Remove tests that don't test mlia-ethos-u by @oluwatamilore-arm
- feat(corstone): Support bundled Python runtime by @Mousius
- chore: Fix mlia core version to 0.12.1 by @integratedintegral21
- feat: Publish versioned release documentation by @max-shvetsov
- ci: Codex PR review by @jslater8
- refactor(ethos-u): Adopt core standardized advisor output by @Rob-Hughes-Arm
- fix: Omit non-finite Vela metrics by @Rob-Hughes-Arm
- feat(metrics): Define layer aggregation policies by @Rob-Hughes-Arm
- fix: Measure coverage for installed plugin packages by @Rob-Hughes-Arm
- docs: Align Ethos-U guidance with current output by @Rob-Hughes-Arm
- fix(vela): Enable backend tests and preserve safe provenance by @Rob-Hughes-Arm
- fix(vela): Preserve TFLite source operator IDs by @Rob-Hughes-Arm
- refactor(ethos-u): Complete canonical result ownership by @Rob-Hughes-Arm
- fix: Fix output_message not referenced by @IsabellaARM
- ci: Publish documentation to GitHub Pages by @IsabellaARM
- fix: Rewrite relative links in METADATA by @integratedintegral21
- ci: Sync release notes to public repositories by @IsabellaARM
- docs: Update documentation by @IsabellaARM
- fix(performance): Separate Corstone and Vela result scopes by @Rob-Hughes-Arm
- ci: Add PyTorch E2E release coverage by @jedgar-arm
- feat: 0.1.0 release by @max-shvetsov
- ci: Gate tagged releases on checks scans and documentation by @max-shvetsov
New Contributors
- @feibi-allen made their first contribution
- @logan-scully-arm made their first contribution
- @IsabellaARM made their first contribution
- @jedgar-arm made their first contribution
- @max-shvetsov made their first contribution
- @oluwatamilore-arm made their first contribution
- @integratedintegral21 made their first contribution
- @jslater8 made their first contribution
- @Rob-Hughes-Arm made their first contribution
Full Changelog: v0.0.2...v0.1.0rc1