microTVM: TVM on bare-metal

microTVM runs TVM models on bare-metal (i.e. IoT) devices. microTVM depends only on the C standard library, and doesn’t require an operating system to execute. microTVM is currently under heavy development.

https://raw.githubusercontent.com/tvmai/web-data/main/images/dev/microtvm_workflow.svg

microTVM is:

  • an extension to TVM’s compiler to allow it to target microcontrollers

  • a way to run the TVM RPC server on-device, to allow autotuning

  • a minimal C runtime that supports standalone model inference on bare metal devices.

Supported Hardware

microTVM currently tests against Cortex-M microcontrollers with the Zephyr RTOS; however, it is flexible and portable to other processors such as RISC-V and does not require Zephyr. The current demos run against QEMU and the following hardware:

Getting Started with microTVM

Before working with microTVM, we recommend you have a supported development board. Then, follow these tutorials to get started with microTVM. Tutorials are in the order that could help developers to learn more as they follow through them. Here is a list of tutorials that you can start with:

  1. Try microTVM CLI Tool.

  2. Try the microTVM TFLite Tutorial.

  3. Try running a more complex tutorial: Creating Your MLPerfTiny Submission with microTVM.

How microTVM Works

You can read more about the design of these pieces at the microTVM Design Document.

Help and Discussion

The TVM Discuss Forum is a great place to collaborate on microTVM tasks, and maintains a searchable history of past problems.