TensorFlow Lite for Microcontrollers on Arm Ethos-U
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