torch-mlir/build_tools/torchscript_e2e_heavydep_tests
Vivek Khandelwal 4635d36efb [MLIR][TORCH] Add heavydep tests for torch benchmarks
This commit adds e2e heavydep tests for the torch benchmarks.

Signed-Off By: Vivek Khandelwal <vivek@nod-labs.com>
2022-04-26 13:22:08 +05:30
..
README.md Remove the last mentions of npcomp from torch-mlir 2021-10-05 20:17:23 +00:00
bert_functorch.py Generate backward graph via functorch-aot module 2022-04-22 20:58:35 +05:30
fully_connected_backward.py Generate backward graph via functorch-aot module 2022-04-22 20:58:35 +05:30
functorch_utils.py Generate backward graph via functorch-aot module 2022-04-22 20:58:35 +05:30
generate_serialized_tests.sh Generate backward graph via functorch-aot module 2022-04-22 20:58:35 +05:30
hf_sequence_classification.py [MLIR][TORCH] Add heavydep tests for torch benchmarks 2022-04-26 13:22:08 +05:30
main.py [MLIR][TORCH] Add heavydep tests for torch benchmarks 2022-04-26 13:22:08 +05:30
vision_models.py [MLIR][TORCH] Add heavydep tests for torch benchmarks 2022-04-26 13:22:08 +05:30

README.md

Additional end-to-end tests with heavy dependencies (heavydep tests)

Some end-to-end tests require additional dependencies which don't make sense to include as part of the default torch-mlir setup. Additionally, these dependencies often don't work with the same HEAD PyTorch version that torch-mlir builds against at the C++ level.

We have a self-contained script that generates all the needed artifacts from a self-contained virtual environment. It can be used like so:

# Build the virtual environment in the specified directory and generate the
# serialized test artifacts in the other specified directory.
# This command is safe to re-run if you have already built the virtual
# environment and just changed the tests.
build_tools/torchscript_e2e_heavydep_tests/generate_serialized_tests.sh \
  path/to/heavydep_venv \
  path/to/heavydep_serialized_tests

# Add the --serialized-test-dir flag to point at the directory containing the
# serialized tests. All other functionality is the same as the normal invocation
# of torchscript_e2e_test.sh, but the serialized tests will be available.
tools/torchscript_e2e_test.sh --serialized-test-dir=path/to/heavydep_serialized_tests

The tests use the same (pure-Python) test framework as the normal torchscript_e2e_test.sh, but the tests are added in build_tools/torchscript_e2e_heavydep_tests instead of frontends/pytorch/e2e_testing/torchscript.

We rely critically on serialized TorchScript compatibility across PyTorch versions to transport the tests + pure-Python compatibility of the torch API, which has worked well so far.