aen-npu-inference — Ethos-U85 inference on E8
First on-silicon NPU inference on the E1M-AEN801: a Vela-compiled int8 model dispatched to the Ethos-U85 (256-MAC) via TFLite-Micro + the Arm Ethos-U core driver.
Source: examples/aen/aen-npu-inference/.
The three variants
| Example | Model | Where it lives | Status |
|---|---|---|---|
aen-npu-inference | tiny int8 fixture | RAM | wiring baseline |
aen-npu-inference-alif | tiny_int8.tflite | SRAM0 (DMA-visible) | RESULT PASS — matched-runtime fix |
aen-npu-inference-person-mram | real person_detect MobileNet (int8, ~263 KiB, 100 % NPU) | MRAM slot0 | RESULT PASS |
What it does
- Loads a Vela-compiled int8 model and runs
MicroInterpreter→ Ethos-U85. - The
-alifvariant carries the matched-runtime fix that cleared the residualethosu_invoke=1: weak overrides forethosu_address_remap(CPU→NPU address translation) andethosu_config_select(MEM_ATTR index 0 → the SRAM AXI port). - The
-person-mramvariant links the real model into MRAM slot0 (it overflows the 256 KiB ITCM RAM-run) and boots via the MRAM-XIP two-blob Flow D helper. Vela report: 0 CPU ops / 44 NPU ops (100 %).
The model + tensor arena must be in SRAM0 (DMA-visible) with CONFIG_DCACHE=n.
board.yaml
som:
sku: E1M-AEN801
preset: e1m-evk
cores:
m55_he:
app: ./src
inference: { tensor_arena_kb: 512 }
diagnostics:
log_level: info
Expected output
[npu-inference] Vela: 0 CPU ops / 44 NPU ops (100% NPU)
[npu-inference] inference complete
[npu-inference] RESULT PASS
See also
<alp/inference.h>— NPU dispatcher- E1M-AEN — inference
edgeai-vision-aen— full camera → NPU → OLED pipeline
Questions about this page? Discuss in Community Forum