TensorFlow Lite for Microcontrollers on Arm Ethos-U

Browse source code on GitHub

Overview

A sample application that demonstrates how to run an inference using the TFLM framework and the Arm Ethos-U NPU.

The sample application runs a model that has been downloaded from the Arm model zoo. This model has then been optimized using the Vela compiler.

Vela takes a tflite file as input and produces another tflite file as output, where the operators supported by Ethos-U have been replaced by an Ethos-U custom operator. In an ideal case the complete network would be replaced by a single Ethos-U custom operator.

Building and running

Add the tflite-micro module to your West manifest and pull it:

west config manifest.project-filter -- +tflite-micro
west update

This application can be built and run on any Arm Ethos-U capable platform, for example Corstone(TM)-300. A reference implementation of Corstone-300 can be downloaded either as a FPGA bitfile for the MPS3 FPGA prototyping board, or as a Fixed Virtual Platform that can be emulated on a host machine.

Assuming that the Corstone-300 FVP has been downloaded, installed and added to the PATH variable, then building and testing can be done with following commands.

$ west build -b mps3/an547 zephyr/samples/modules/tflite-micro/tflm_ethosu
$ FVP_Corstone_SSE-300_Ethos-U55 build/zephyr/zephyr.elf