Edge Impulse model on Ethos-U (Alif E7 + Zephyr)

Issue:
Hello,

I am working on an Alif Ensemble E7 (Cortex-M55 + Ethos-U55) running Zephyr RTOS, and I am trying to deploy an Edge Impulse model that should run on the Ethos-U55 NPU.

My goal is to offload the inference to the Ethos-U NPU.
However, I am currently unable to make the NPU work with Edge Impulse under Zephyr.

Context/Use case:

  • Hardware: Alif E7 DevKit (M55 + Ethos-U55-256)
  • OS: Zephyr
  • Goal: Run an Edge Impulse model on the Ethos-U55 NPU instead of the CPU.

What I have tried

1. Using the Zephyr Edge Impulse Module

I tried using the Zephyr module:
modules/edge-impulse-sdk-zephyr/

But I’m not sure whether this module actually supports Ethos-U acceleration, or if it only handles standard TensorFlow Lite Micro (CPU-only).
I cannot find clear documentation about whether the Zephyr EI module supports the NPU path.

2. Exporting the model from Edge Impulse

I generated models using:

  • “Zephyr Library” → this always runs inference on the Cortex-M55, never on the NPU.
  • “Ethos-U55-256 library (High End Embedded, shared SRAM)” → this export includes its own Edge Impulse SDK and custom kernels.

But when I integrate this export into a Zephyr application, the build becomes very complicated, and I am not sure what is the correct and official way to integrate this NPU-enabled SDK into a Zephyr project.

Question

  1. Can the Zephyr Edge Impulse module (edge-impulse-sdk-zephyr) be used for Ethos-U models?

  2. What is the correct way to integrate the Edge Impulse “Ethos-U55-256 library (High End Embedded, Shared SRAM)” export into a Zephyr project on the Alif E7?

Any example, documentation, or minimal working project would be extremely helpful.
Thank you in advance for any help or feedback!

Hi @Rizelaine

  1. Not yet, the current Zephyr deployment does not support Ethos. It’s it the map, but so far we haven’t started.
  2. A basic example on how to integrate our C++ deployment into a Zephyr application is this repo: GitHub - edgeimpulse/example-standalone-inferencing-zephyr , documentation is here Run C++ library on Zephyr-based Nordic Semiconductor development boards - Edge Impulse Documentation (it targets Nordic, but the basic are the same). I suggest you to start deploying the C++ library, integrate it into your zephyr application to get used on how to integrate it, then to try with the Ethos deployment for your target.

When integrating the Ethos deployment, you will need to define these:

- ETHOSU55
- EI_ETHOS
- EI_ALIF_ADDR_TRANSLATION
- ARM_NPU
- ETHOS_U_NPU_ID: 55
- ETHOS_U_NPU_MEMORY_MODE: Shared_Sram
- ETHOS_U_NPU_CONFIG_ID: H256
- ETHOS_U_NPU_TIMING_ADAPTER_ENABLED: Off
- NPU_QCONFIG: 1
- NPU_REGIONCFG_0: 1
- NPU_REGIONCFG_1: 0
- NPU_REGIONCFG_2: 1
- AXI_LIMIT0_MEM_TYPE: 3
- AXI_LIMIT1_MEM_TYPE: 3
- AXI_LIMIT2_MEM_TYPE: 3
- AXI_LIMIT3_MEM_TYPE: 3
- TF_LITE_STATIC_MEMORY

If you want, you can share you repo and I can give a look.

regards,
fv