I am currently working on integrating a new hardware with TVM and I am confused with the combination of the device API, BYOC and memory planning. I don’t know exactly how I should proceed and would really appreciate some guidance.
The device API gives me a “dynamic runtime” feel if that makes sense, while I was thinking to generate more “static code”. I should mention that I am particularly interested by the AOT executor.
Here are my questions:
- In what cases do I need to provide a device API for BYOC for a new hardware?
- If I need to provide a device API, how does it play with the codegen? Do I need to generate calls to the device API? (I might as well just generate the code implemented by the device API)
- What if we add USMP to the pipeline?
PS: I am developping on the unity branch, hence the tag, I can move the post to a more general topic if inappropriate