Hi @apeskov!
Yes, sure! I'll clean up my code so I can extract the patch out of it, but the change was rather simple: @contextlib.contextmanager def default_module_loader_mgr(remote_kwargs, build_result): remote = request_remote(**remote_kwargs) # if pre_load_function is not None: # pre_load_function(remote, build_result) print("Remote upload = ", build_result.filename) remote.upload(build_result.filename) try: yield remote, remote.load_module(os.path.split(build_result.filename)[1]) finally: # clean up remote files remote.remove(build_result.filename) remote.remove(os.path.splitext(build_result.filename)[0] + ".so") remote.remove("") print("Clean up = ", build_result.filename) def default_module_loader(pre_load_function=None): """Returns a default function that can be passed as module_loader to run_through_rpc. Parameters ---------- pre_load_function : Optional[Function[tvm.rpc.Session, tvm.runtime.Module]] Invoked after a session is established and before the default code-loading RPC calls are issued. Allows performing pre-upload actions, e.g. resetting the remote runtime environment. Returns ------- ModuleLoader : A function that can be passed as module_loader to run_through_rpc. """ return default_module_loader_mgr I'm not good with `Python` (yet), but what I understood is that `Python` has problems pickling nested functions since it gets complicated to maintain a pointer to those. So I have just removed `default_module_loader_mgr` outside of `default_module_loader` method score and that did the trick --- [Visit Topic](https://discuss.tvm.apache.org/t/compile-pytorch-model-for-ios/9995/17) 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/29907e283bfd942a52191e011f333d5a6f5e5b6965a6e2de70d53e4913859a32).