Hello @hijiang,
I have followed your work and made some extensions to support such splitting as I mentioned in the previous discussions Setting the CPU affinity and number of cores locally without RPC Remote - #4 by popojames. Can TVM split work into different layers, and assign layers into different cores? - #10 by hjiang. I was able to split the network and with my own CPU affinity setting.
Now I try to assign param of the pre-trained model into the pipeline module, I noticed the function of PipelineModule.set_input support such setting:
However, this function will induce the following error:
AttributeError: 'Module' object has no attribute 'set_input'
This is because of the type of self.graph_modules_[mod_idx] is something like Module(GraphExecutor, 27517208) instead of tvm.contrib.graph_executor.GraphModule. In this case, the latter can access set_input but the former cannot.
Is there any other way to assign parameters or can I transfer from Module(GraphExecutor, XXX) to tvm.contrib.graph_executor.GraphModule in this case to set the parameters?
Thanks for your help in advance and many thanks for developing this TVM function.