Thanks for the RFC. The main thing that I think worth doing is scoping, so that the relation of the proposed module can be reasonably understandable by the overall community. Here are two things
## Clarifying the interface - X0: TVM had a heavy focus on a fixed, small set of universal interface that users interact with, namely PackedFunc, Object system and extensions being defined using that system. - For example, when a user seek to pass in memory allocator, or Map, they simply create an Object and pass that to a PackedFunc, as a result, the overall FFI API of TVM runtime remains stable. - X1: MicroTVM introduced a special set of interface, namely unpacked API, additionally, there are explicit specifications such as workspace, device. X1 brings different set of complexity to our overall pipeline, but is also an understandable set of design choices for low resource embedded environment as a result we include it to empower our broader community. One consequence of X1 was a generator-based approach to generate interfaces -- it was not very obvious in the proposal but becomes obvious when reading the PR. That particular approach is fine, but would be great to clarify "what is the interface" that the users are expecting when interacting with the project. ## Scoping Because X1 is a different set of runtime API designed with a different environment in mind. X0 and X1 do provide different kinds of runtime user experiences(for different category of users). So it would be helpful to scope the module in a way such that they are clear and not become point of confusion for the users. For example, having namespacing and folders would help, either using the current micro branding, or embedded. This would bring clarity to the users and developers when looking at those modules. -- Reply to this email directly or view it on GitHub: https://github.com/apache/tvm-rfcs/pull/96#issuecomment-1372526217 You are receiving this because you are subscribed to this thread. Message ID: <apache/tvm-rfcs/pull/96/c1372526...@github.com>