pytorch
f510193e - [jit][edge] Export maybe-used interface methods from modules. (#65966)

Commit
3 years ago
[jit][edge] Export maybe-used interface methods from modules. (#65966) Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/65966 ghstack-source-id: 141594521 Support exportation of "interface methods" from submodule to a mobile module. "Interface methods" are defined as methods which might be dynamically called in a module therefore need to be exported anyway, like virtual functions in C++. Before this change the algorithm of exportation is a simple iteration through all toplevel methods. Now since we have indirect calls, we need to recursively walkthrough the call graph to find all potentially used methods, which means the order we export methods might break in old runtimes, to guarantee forward compatibility we need to export toplevel methods first, then extra methods, in this order toplevel methods will always be found first. NOTE that interface methods exportations are disabled by default in this diff. We need to call torch._C._enable_mobile_interface_call_export to actaully enable it. Test Plan: buck test mode/dev //caffe2/test:jit -- --exact 'caffe2/test:jit - test_export_opnames_interface (jit.test_misc.TestMisc)' Reviewed By: qihqi, iseeyuan Differential Revision: D31326155 fbshipit-source-id: 5be7234cca07691f62648a85133b6db65e427b53
Author
Parents
Loading