As I’ve been getting up to speed with the current code and getting it working with my STM32F746, I’ve been thinking we should perhaps consider a few things.
- When it comes to Zephyr and/or mBed or other RTOSes I’d like to suggest reference projects would be substantially better if we pushed that into those respective communities.
In the case of Zephyr this might look like a sample app. Positive: A Zephyr user as part their environment essentially gets the µTVM app for free. Positive: Those not familiar with µTVM but familiar with Zephyr might be more attracted to make use of µTVM presuming it would be easier to discover as part of the Zephyr project. Positive: Zephyr has CMSIS integrated Negative: External modules and keeping those in sync across multiple RTOS projects tho having the same project utilize a TVM environment variable might solve this issue.
There is precedence for this, TF Lite Micro for instance is integrated into Zephyr.
-
µTVM should resist as much as possible hard coding board information especially when making use of an RTOS.
consider : python/tvm/micro/contrib/zephyr.py
BOARD_USB_FIND_KW = { “nucleo_f746zg”: {“idVendor”: 0x0483, “idProduct”: 0x374B},
I think we have to catch this kind of thing. mBed, Zephyr, etc, RTOSes. I’d like to think that an object like ZephyrFlasher should be able to make use of the Zephyr tooling.
- tvmc integration
I’d like to suggest that we should work to include µTVM support within tvmc. Within the Microcontroller ecosystem making things easy to use for a population of developers who are new to the world of Machine Learning Compilers. @ramana-arm
Let’s start another thread specific for this topic and hammer out what an interface should look like.