MCU hardware benchmark compared to TFLite
@rascani is already working on this.
Since Mar 30, 2026.
- Dominant language
- Python
- Stars
- 5k
- Forks
- 1.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 581
Description
Hello,
I’m currently evaluating ExecuTorch (Tag V1.0.0 export & Runner) vs TFLite on real hardware (not FVP).
The goal is purely technology validation for industrial use cases, before selecting a runtime for deployment on microcontroller-class devices.
Target: Cortex-M55 + Ethos-U55
Model: MobileNetV2 (int8, Ethos-U compatible)
For ExecuTorch: from torchvision.models import mobilenet_v2
For TFLite: tf.keras.applications.MobileNetV2
The same model architecture and equivalent quantization were used for both runtimes (both with INT8 input/output).
ExecuTorch
PTE size: 3.5 MB (3 512 288 bytes)
Memory:
- Planned (with Input / Output):
256 KiB - Runtime / temporary:
1.6 MiB - Method:
30 KiB
Total :
256 + 1600 + 30 = 1886 KiB
≈ 1.84 MiB
After run:
Runtime (used): 1.44 MiB (1474 KiB)
Method (used): 0.24 KiB
Total real:
1464 + 0.24 + 256 = 1720 KiB
= 1.679 MiB
Inference time:
- One image: 101 ms
- 100 images: 101.782 ms
Timing only on:
g_method->execute();
TensorFlow Lite
Vela TFLite size: 3.7 MB (3 684 976 bytes)
Arena memory before running (with inputs/outputs): 1.7 MiB
Arena used (after run): 1.51 MiB
Inference time:
- One image: 91.221 ms
- 100 images: 91.204 ms
Timing only on:
g_interpreter->Invoke();
As I understand it, when comparing memory usage, the TFLite arena is roughly equivalent to Planned + Runtime.
Do these values seem correct to you?
Based on these measurements, TFLite currently shows lower latency and memory usage than ExecuTorch, which was unexpected on our side and would be interesting to understand.
cc @freddan80 @per @zingo @oscarandersson8218 @digantdesai @psiddh @AdrianLundell
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.