This is great @areusch! I appreciate the ability to re-introduce c_backend_api.h
to leverage existing abstractions without having to necessarily use c_packed_func.h
. It’d be great if we only required the single backend header file, I think the only thing that prevents is having to copy function_attributes.h
across as well - I’d suggest all of the backend definition, including attributes, could live in the single c_backend_api.h
?
Extending that a bit, if we only need to take c_backend_api.h
into a project as a header, could we not raise these headers out of the runtime folder? Potentially include/tvm/c_backend_api.h
or even include/tvm_backend_api.h
? My assumption here is that the backend would always be written in something with a stable C ABI. This could potentially be true of c_packed_func.h
/tvm_packed_func.h
as well, leaving only the runtime-specific headers in the runtime folder?
I’d be interested in considering just TVMPackedFunc
? Is there a reason to mark it explicitly as a C function?