Hi all!
I have currently been trying to understand the relationship between this components, in order to integrate a custom accelerator + board into TVM.
As a reference, this is what I would like to try:
- AutoTVM running on the host computer
- Multiple boards connected to the same host computer running the AutoTVM schedules.
Now, each of this boards only runs baremetal applications, so I understand that I should have a simple application running in each of them, using the MicroTVMRPCServer (similar to the host driven Zephyr example).
Now in my host computer, I have the ProjectAPI of my specific configuration, already coded to communicate through UART with the board (also similar to the Zephyr example).
What I am failing to understand is how the tvm.autotvm.RPCRunner and the rpc_tracker integrate with this. All examples I have seen use the RPCRunner to point to an already started rpc_tracker, which should have boards (or hardware) already registered in it.
So the questions are:
- Are there any examples running AutoTVM on baremetal devices using microTVM? (there is one for microTVM but it uses the host as target).
- Should I write my own runner in order to communicate with my board through the UART? Or should the RPCRunner be able to manage this?
Thanks all!