@tqchen @manupa-arm @mjs @giuseros great discussions so far!
> Identifiers that begin with underscore are reserved by the C standard. > Conformant C code should not use them, dropping the _ and using just “tvm_…” > would be conformant. I agree with this. Do we need to consider distinguishing this prefix from that used within TVM itself? e.g. `tvmgen_` so that stacktraces when compute is launched from the shared library are clear. > I dont follow why a “prefix” necessarily mean user being able to select it? > If “prefix” is not the right term we should not call it a prefix. Yeah this is just me stating that we were proposing `tvm_<model_name>_<function_name>`, where `<model_name>` is termed a prefix. I'd call `tvm_<model_name>_` a prefix here. > I agree that having a common prefix is helpful in the dso landscape to > clearly identify function generated by tvm. To faciliate discussion, consider > the following code > > ``` > m = tvm.runtime.load_module("x.so") > # Option P0: require explicit query using tvm_run > run = m["tvm_run"] > # Option P1: the underlying symbol is "tvm_run" > run = m["run"] > ``` > > I believe we are still talking about P0 atm for simplicity(direct > correspondence of symbol and packed func name), but allow the AOT generator > to append a prefix(like @areusch 's comment of prefix starting from char 0). > My main comment of backward compact is when we start to choose P1. If we go > with P1, then we will need to put more thoughts into it. @tqchen, in this case, the main function being queried should be the factory function for Module-based Model Runtime Interface, no? In that case, it seems reasonable to require: ``` m = tvm.runtime.load_module("x.so") # User looks up module via prefix executor = m["customprefix_tvm_modelname"]() # Or perhaps TVM can fall back to the standard one executor = m["modelname"](). # Looks up tvmgen_modelname executor["set_input"]("foo", bar) # ... ``` It should be possible to include the prefix when looking up the module-specific functions. It's also worth pointing out here that this discussion is for the case of loading a module using the C++ runtime. With the C runtime, I think it's expected that the user chooses `<prefix>` to match their firmware implementation. --- [Visit Topic](https://discuss.tvm.apache.org/t/mini-rfc-name-mangling-in-aot/9907/10) 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/14e17e1c7fe0e39662228f4b7fe0fbf061aacf7166b9c33c13747def03efc8f2).