torch-mlir/build_tools
Sean Silva 453e29ea05 Add E2E support for tests with heavy dependencies (heavydep 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`. Any needed dependencies can
easily be configured in generate_serialized_tests.sh.

We add an initial machine translation model with a complex set of
dependencies to seed the curriculum there. I verified that this model
gets to the point of MLIR import (it fails there with a segfault due to
not being able to import the "Any" type).

This required moving a few files from the `torch_mlir` Python module
into multiple modules to isolate the code that depends on our C++
extensions (which now live in `torch_mlir` and
`torch_mlir_torchscript_e2e_test_configs`) from the pure Python code
(which now lives in `torch_mlir_torchscript`). This is an entirely
mechanical change, and lots of imports needed to be updated.

The dependency graph is:
```
       torch_mlir_torchscript_e2e_test_configs
                  /              |
                 /               |
                /                |
               V                 V
torch_mlir_torchscript       torch_mlir
```

The `torch_mlir_torchscript_e2e_test_configs` are then dependency-injected
into the `torch_mlir_torchscript` modules to successfully assemble a
working test harness (the code was already structured this way, but this
new file organization allows the isolation from C++ code to actually
happen).  This isolation is critical to allowing the serialized programs
to be transported across PyTorch versions and for the test harness to be
used seamlessly to generate the heavydep tests.

Also:
- Extend `_Tracer` class to support nested property (submodule) accesses.

Recommended review order:
- "user-level" docs in README.md
- code in `build_tools/torchscript_e2e_heavydep_tests`.
- changes in `torch_mlir_torchscript/e2e_test/framework.py`
- misc mechanical changes.
2021-08-03 14:09:56 -07:00
..
torchscript_e2e_heavydep_tests Add E2E support for tests with heavy dependencies (heavydep tests). 2021-08-03 14:09:56 -07:00
build_python_wheels.sh Build packages for npcomp-torch. 2021-07-29 19:58:59 -07:00
docker_shell_funcs.sh More progress on PyTorch acap device capture. 2020-10-15 21:43:21 -07:00
find_version_hashes.py Add mlir-hlo as a submodule and add a script to find versions. (#20) 2020-08-13 16:42:05 -07:00
format_sources.sh Add boilerplate to do device capture (pytorch 1.6). 2020-09-28 10:30:54 -07:00
show_python_info.py Rework README, add docs, and move some scripts to better locations accordingly. 2020-06-20 11:56:13 -07:00
test_all.sh Bump llvm-project to c68d2895a1f4019b387c69d1e5eec31b0eb5e7b0 2021-02-22 12:23:24 -08:00
update_torch_ods.sh Significantly restructure torch/aten import design. 2021-05-19 13:37:39 -07:00
write_env_file.sh Update readme and scripts for setting the new PYTHONPATH 2021-07-28 15:06:40 -04:00