Closed PhilippvK closed 2 years ago
The main question is how we get useful metrics on these platforms. Getting an estimation of Cycle counts as well as tracing dynamic memory accesses would be optimal but is not feasible for most platforms.
Here is a progress update:
Targets:
[x] ETISS/Pulpino (RISCV)
[x] Add MLonMCU target
[x] Install dependencies automatically
[x] MLIF integration
Supported Features:
VEXT support
[x] Trace support
[x] GDBServer support
Supported Metrics:
[x] Estimated Cycles
[x] Static Memory (ROM/RAM)
[x] Dynamic Memory (Stack/Heap)
[x] MIPS
[x] Host (x86)
[x] Add MLonMCU target
[x] Install dependencies automatically
[x] MLIF integration
Supported Features:
[x] GDBServer support
Supported Metrics:
[x] Runtime (Seconds)
[x] Spike (RISCV)
[x] Add MLonMCU target
[x] Install dependencies automatically
[x] MLIF integration
Supported Features:
[x] VEXT support
GDBServer support
Supported Metrics:
[x] Estimated Cycles
[x] Static Memory (ROM/RAM)
[ ] OVPSim (RISCV)
[x] Add MLonMCU target
[ ] Install dependencies automatically
[x] MLIF integration
Supported Features:
[x] VEXT support
[ ] Trace support?
[ ] GDBServer support
Supported Metrics:
[x] Estimated Cycles
[x] Static Memory (ROM/RAM)
[x] MIPS
[ ] Corstone300 (ARM, Cortex-M55)
[x] Add MLonMCU target
[x] Install dependencies automatically
[x] MLIF integration
Supported Features:
[ ] EthosU support
[ ] Trace support?
GDBServer support
Supported Metrics:
[x] Estimated Cycles
[x] Static Memory (ROM/RAM)
Now. That we have also non-ETISS targets available, it might be feasible to use a different simulator for the MicroTVM Autotuning flow. The Spike Proxy Kernel seems to also offer a UART interface which could be used for this. OVPsim seems to be the fastest simulator right now which would be desirable as autotuning is already very time consuming, but I have not yet found out if it supports a virtual UART.
Here is an update regarding real-hardware support:
Platform
class as a "registry" for targets.MLIF
(Name might change in the furture)ESP-IDF
with template project and compile/flash functionality
--platform espidf
idf.py
is currently NOT installed by MLonMCU -> Still have to decide if we want to manage such things.
Currently we support two targets:
etiss_pulpino
(Might be renamed toetissvp
oredaduino
)host_x86
In the future we might support further architectures/simulator/devices e.g.: