pytorch/torch/csrc/jit/python
Yanan Cao 890b52e09f Reduce instability in runCleanUpPasses by reordering passes. (#41891)
Summary:
Currently constant pooling runs before const propagation, which can create more constants that need pooling. This can get in the way of serialization/deserialization stability because each time user serializes and deserializes a module, runCleanUpPasses is called upon it. Doing so multiple times would lead to different saved module.

This PR moves constant pooling after const propagation, which may slow down const propagation a little bit, but would otherwise side-step aforementioned problem.

test_constant_insertion in test_jit.py is also updated because after fixing the pass ordering, the number of constants is no longer a constant and it is extremely difficult to get the exact number with the current convoluted test structure. So for now, I changed the test to check only that CSE doesn't change number of "prim::constant" rather than comparing against a known number. Also left a TODO to improve this test.

ConstantPropagation pass is replaced by ConstantPropagationImmutableTypes because the latter is used in runCleanUpPasses. If not replaced, the former would create new CSE opportunities by folding more constants. This voids the purpose of the test case.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/41891

Reviewed By: colesbury

Differential Revision: D22701540

Pulled By: gmagogsfm

fbshipit-source-id: 8e60dbdcc54a93dac111d81b8d88fb39387224f5
2020-07-24 11:39:20 -07:00
..
init.cpp Reduce instability in runCleanUpPasses by reordering passes. (#41891) 2020-07-24 11:39:20 -07:00
init.h
module_python.h [jit] kill script namespace (#34515) 2020-03-11 23:32:48 -07:00
pybind_utils.h [1/N] Implement Enum JIT support (#41390) 2020-07-18 22:15:06 -07:00
pybind.h [JIT] clang-format JIT code (#35115) 2020-03-26 11:24:51 -07:00
python_arg_flatten.cpp [JIT] clang-format JIT code (#35115) 2020-03-26 11:24:51 -07:00
python_arg_flatten.h
python_custom_class.cpp s/torch::jit::class_/torch::class_/ (#40795) 2020-07-06 15:53:33 -07:00
python_custom_class.h
python_interpreter.cpp Unify boxed function signature between jit and c10 (#37034) 2020-06-29 19:24:26 -07:00
python_ir.cpp [1/N] Implement Enum JIT support (#41390) 2020-07-18 22:15:06 -07:00
python_ir.h [JIT] clang-format JIT code (#35115) 2020-03-26 11:24:51 -07:00
python_ivalue.h Explicitly decref py::object in ConcretePyObjectHolder and PythonFunctionGuard (#38364) 2020-05-12 20:55:53 -07:00
python_sugared_value.cpp move misc implementation out of jit/__init__.py (#41154) 2020-07-13 16:59:55 -07:00
python_sugared_value.h wconstab/38034-sliced-sequential (#40445) 2020-06-24 09:05:51 -07:00
python_tracer.cpp [jit] tracer flag to guard risky behaivors (#36277) 2020-04-13 22:35:03 -07:00
python_tracer.h [jit] tracer flag to guard risky behaivors (#36277) 2020-04-13 22:35:03 -07:00
python_tree_views.cpp [JIT] Add support for with statements (#34705) 2020-06-18 16:57:18 -07:00
python_tree_views.h [jit] kill script namespace (#34515) 2020-03-11 23:32:48 -07:00
script_init.cpp [JIT] Add support for backend-lowered submodules (#41146) 2020-07-10 16:35:24 -07:00
script_init.h [jit] kill script namespace (#34515) 2020-03-11 23:32:48 -07:00
update_graph_executor_opt.cpp Canonicalize includes in torch, and add tests for it (#36303) 2020-04-23 08:09:21 -07:00
update_graph_executor_opt.h [JIT] clang-format JIT code (#35115) 2020-03-26 11:24:51 -07:00