Components
Models and Frontends
The types of models which can be processed with MLonMCU are given by the implemented frontends. The Following Table shows the currently supported ones:
Frontend |
Formats |
---|---|
TFLite |
|
Here is also a list of frontends with will probably implemented in the furture:
ONNX (
onnx
)TensorFlow SavedModel (
.pb
)
While you can use your own models we also provide support for the following model zoos which can be cloned from GitHub:
Model Collection by EDA@TUM (
tum-ei-eda/mlonmcu-models
)ARM Model Zoo (
ARM-software/ML-zoo
) ⚠️ Work in Progress ⚠️
Frameworks and Backends
For each framework supported by MLonMCU, a number of backends is implemented.
Framework |
Backends |
---|---|
TenflowFlow Lite |
Default Interpreter ( |
TVM ( |
AoT Executor ( |
Platforms and Targets
While support for some targets (especially simulator based ones) is directly build into MLonMCU, a platform is used for more complivcated targets (e.g. real hardware) to reuse existing Flows for compiling and flashing
Platform |
Targets |
---|---|
Default |
RISC-V: |
ESP IDF ( |
LX6: |
To extend the support of read hardware targets, it would be great if this list would be extended by some of the following platforms in the furture:
Arduino Excosystem
PlatformIO
ZephyrOS
Features
An extensive overview of the available features in TVM is given in the following table. The types of those features are denoted with a check mark in the respective column.
Feature |
Setup |
Frontend |
Framework |
Backend |
Target |
Platform/Compile |
Other |
---|---|---|---|---|---|---|---|
Debug Arena Usage ( |
✅ |
||||||
Validate Output Data ( |
✅ |
✅ |
|||||
muRISCV-NN ( |
✅ |
✅ |
|||||
CMSIS-NN ( |
✅ |
✅ |
|||||
CMSIS-NN + TVM BYOC ( |
✅ |
||||||
Fused TIling for TVM ( |
✅ |
||||||
Custom TVM meory planner ( |
✅ |
||||||
Unified Static Memory Planner for TVM ( |
✅ |
||||||
V-Extension for RISC-V ( |
✅ |
✅ |
|||||
Debug Build ( |
✅ |
✅ |
|||||
GDBServer ( |
✅ |
||||||
Debug ETISS VP ( |
✅ |
||||||
Create Memory Trace ( |
✅ |
||||||
Unpacked API ( |
✅ |
||||||
Autotune TVM Model ( |
✅ |
||||||
Use TVM Tuning Records ( |
✅ |
Managed Dependencies
MLonMCU tries to either manage dependencies internally (hidden to the user) or rely on 3rd party platforms to install them.
The following list gives and overview of the set of dependencies which are currently managed:
Toolchains - RISC-V GCC Linux Toolchain - Download and extract - ARM GCC Linux Toolchain - Download and extract - LLVM - Download and extract
Targets/Simulators - ETISS - Clone Repository - Build ETISS - Install ETISS - Build
bare_etiss_processor
- Spike - Clone Repositories - Build Proxy Kernel - Build Simulator - Corstone-300 - Download and extract - Install FVPFrameworks/Backends - TFLM - Clone Repository - Download 3rd party dependencies - TFLite Micro Compiler - Clone Repository - Build - TVM - Clone Repository (including 3rd party dependencies) - Configure & Build - uTVM Staticrt Codegen - Clone Repository - Build
Features - muRISCV-NN - Clone Repository - Build - CMSIS(-NN) - Clone Repository - Build
The following dependencies are intentionally NOT managed by MLonMCU:
OVPSimPlus: The simulator is closed source and needs an individual license for usage (free)
ESP-IDF: Make sure you provide a
espidf.path
with the required components installed