>One of the things missing is a way to say the codegen name in the 
>runtime.Module without overloading type_key.

I agree. I don't know exactly the best way to proceed here--we likely need 
another RFC. The limitation is that with C++ runtime, the external compiler in 
BYOC is expected to produce runnable artifacts. In µTVM, we just expect 
_compilable_ artifacts. This is a whole different can of worms: it's likely 
we'll produce a bunch of similarly-formatted `runtime.Module` (i.e. `.o`, `.c`) 
which may nonetheless need special treatment downstream in the Project 
generator. Therefore I think it makes sense to identify them somehow to do the 
export grouping. However, I don't know whether it would make sense to add 
another `type_key`-like thing or just stick with `type_key` and provide 
extensible `Module` impls in C++ land. It would be helpful to think through a 
case where a specialized compiler is required downstream (I.e. something like a 
CUDA compiler) which produces object code not targeted to `target_host`.

>However, a draw-back of this approach is Project-API that consume this will 
>need to be aware of the folder structure based on composite target. Do we need 
>that complexity ? 

The case I mention at the end of the above is the case I'm thinking of where it 
would be helpful to separate things. The C++ BYOC interface is: "produce a 
runnable Module in external compiler and serialize/deserialize through binary 
blob." I think given we don't expect external compilers to produce code that 
compiles on `target_host`, we should create an explicit namespace that may not 
include `c` code here.





---
[Visit 
Topic](https://discuss.tvm.apache.org/t/rfc-tvm-model-library-format/9121/3) to 
respond.

You are receiving this because you enabled mailing list mode.

To unsubscribe from these emails, [click 
here](https://discuss.tvm.apache.org/email/unsubscribe/5bcbb4fb1d1f8cb1fd34817076677d8f5217714cd903e4d1a0cdf1f452f0d0aa).

Reply via email to