pytorch/test/cpp/jit
Martin Yuan 524cb0a514 [PyTorch Mobile] Dedup method names in bytecode serialization (#53677)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/53677

When serializing bytecode, we serialize it based on methods. It may happen that there are multiple instances of a class. In such a case, the methods inside the class may be serialized multiple times.

To reduce the duplication, we cache the qualified name of the methods, so that one method is serialized only once.

Test Plan: existing unittests and CI

Reviewed By: dhruvbird, raziel

Differential Revision: D26933945

Pulled By: iseeyuan

fbshipit-source-id: 8a9833949fa18f7103a5a0be19e2028040dc7717
2021-03-16 15:24:47 -07:00
..
__init__.py
CMakeLists.txt Add a demo backend with compiler (#52603) 2021-02-26 11:53:34 -08:00
README.md
test_alias_analysis.cpp
test_argument_spec.cpp
test_autodiff.cpp
test_backend.cpp Adds a bool is_available() method to the backend contract (#53068) 2021-03-10 00:24:16 -08:00
test_backend_compiler_lib.cpp Adds a bool is_available() method to the backend contract (#53068) 2021-03-10 00:24:16 -08:00
test_backend_lib.cpp Adds a bool is_available() method to the backend contract (#53068) 2021-03-10 00:24:16 -08:00
test_class_import.cpp
test_class_parser.cpp
test_class_type.cpp
test_cleanup_passes.cpp
test_code_template.cpp
test_constant_pooling.cpp
test_create_autodiff_subgraphs.cpp
test_custom_class.cpp
test_custom_class_registrations.cpp [WIP][FX] Fix tracing support for torchbind (#52884) 2021-03-05 23:40:16 -08:00
test_custom_class_registrations.h
test_custom_operators.cpp op_whitelist -> op_allowlist (#52150) 2021-02-22 12:23:42 -08:00
test_dce.cpp
test_fuser.cpp Use c10::irange for great good (#52153) 2021-02-24 18:43:50 -08:00
test_gpu.cpp Fix wrong TORCH_CHECK usages (#52670) 2021-02-23 14:47:51 -08:00
test_graph_executor.cpp
test_inliner.cpp
test_interface.cpp
test_interpreter.cpp
test_interpreter_async.pt
test_ir.cpp
test_irparser.cpp
test_jit_type.cpp
test_lite_interpreter.cpp [PyTorch Mobile] Dedup method names in bytecode serialization (#53677) 2021-03-16 15:24:47 -07:00
test_lite_trainer.cpp
test_memory_dag.cpp
test_misc.cpp Add a filter to remove mutation (#51923) 2021-03-01 21:22:33 -08:00
test_mobile_type_parser.cpp
test_module_api.cpp [JIT] Update freezing api (#52337) 2021-02-18 00:17:27 -08:00
test_peephole_optimize.cpp
test_qualified_name.cpp
test_save_load.cpp
test_schema_matching.cpp
test_subgraph_matcher.cpp
test_subgraph_rewriter.cpp
test_subgraph_utils.cpp Extend subgraph utils to cover merging a node following a subgraph (#52513) 2021-03-01 21:22:43 -08:00
test_utils.cpp
test_utils.h Add a demo backend with compiler (#52603) 2021-02-26 11:53:34 -08:00
tests_setup.py Add default arguments to cuda stream and events (#53025) 2021-03-02 14:37:24 -08:00
torch_python_test.cpp

JIT C++ Tests

Adding a new test

First, create a new test file. Test files should have be placed in this directory, with a name that starts with test_, like test_foo.cpp.

In general a single test suite

Add your test file to the JIT_TEST_SRCS list in test/cpp/jit/CMakeLists.txt.

A test file may look like:

#include <gtest/gtest.h>

using namespace ::torch::jit

TEST(FooTest, BarBaz) {
   // ...
}

// Append '_CUDA' to the test case name will automatically filter it out if CUDA
// is not compiled.
TEST(FooTest, NeedsAGpu_CUDA) {
   // ...
}

// Similarly, if only one GPU is detected, tests with `_MultiCUDA` at the end
// will not be run.
TEST(FooTest, NeedsMultipleGpus_MultiCUDA) {
   // ...
}

Building and running the tests

The following commands assume you are in PyTorch root.

# ... Build PyTorch from source, e.g.
python setup.py develop
# (re)build just the binary
ninja -C build bin/test_jit
# run tests
build/bin/test_jit --gtest_filter='glob_style_filter*'