Deploy models on Android & iOS platform must use system-lib. Avoid usage of dlopen.
bundle_deploy demonstrated how to deploy a model which build target contains system-lib. Usually we deploy more than one model which tvm not support.
Working workaround: How to deploy two different tvm compiled model in c++ statically?
But this workaround has some limitations. AlterOpLayout pass must be disabled. AlterOpLayout pass can double the inference speed of some model.
Therefore I want to add Combine multi SYSTEM-LIB module libs to one function to tvm .
Work flow:
- Build each models separately
- Rename duplicate node name in all model’s
GraphRuntimeFactory(json node name, params key, function name in lib), re-generate llvm module - Generate modified
graph json,paramsand aall in one lib - Use
runtime.SystemLibto loadall in one lib - Use
tvm.graph_runtime.create&load_paramsto create each model’s runtime separately