| # Debugging failures in TF/TFLite integration tests. | |
| These are steps to reproduce/address failures in TF/TFLite integration tests. | |
| These instructions are most stable on Linux, though they may work with a few | |
| tweaks on Windows and macOS. | |
| All steps here assume starting from the IREE root directory. | |
| 1. First create a Python virtual environment to install packages into: | |
| ```bash | |
| python -m venv iree-tf.venv | |
| source iree-tf.venv/bin/activate | |
| # Install test requirements | |
| python -m pip install -r ./integrations/tensorflow/test/requirements.txt | |
| ``` | |
| 2. Install IREE's tools and Python bindings or build them from source | |
| Install distributed packages | |
| ```bash | |
| # Install packages from nightly releases | |
| # This should work for most cases, as the importers change infrequently | |
| python -m pip install \ | |
| iree-compiler iree-runtime iree-tools-tf iree-tools-tflite \ | |
| --find-links https://openxla.github.io/iree/pip-release-links.html | |
| ``` | |
| _OR_ build from source | |
| ```bash | |
| # Build Python bindings from source | |
| cmake -G Ninja -B ../iree-build/ -DIREE_BUILD_PYTHON_BINDINGS=ON . | |
| cmake --build ../iree-build/ | |
| # Add IREE built-from-source Python packages to PYTHONPATH | |
| source .env | |
| # Install IREE TF/TFLite Python packages | |
| python -m pip install integrations/tensorflow/python_projects/iree_tf | |
| python -m pip install integrations/tensorflow/python_projects/iree_tflite | |
| ``` | |
| 3. Run the python test command line | |
| The command can be obtained from the run file. For example, if | |
| `iree_tfl_tests/llvmcpu_posenet_i8.run` failed, | |
| ```bash | |
| cd integrations/tensorflow/test/ | |
| cat iree_tfl_tests/llvmcpu_posenet_i8.run | |
| # REQUIRES: llvmcpu | |
| # RUN: %PYTHON -m iree_tfl_tests.posenet_i8_test --target_backend=llvmcpu --artifacts_dir=%t | |
| cd python/ | |
| python -m iree_tfl_tests.posenet_i8_test --target_backend=llvmcpu --artifacts_dir=/tmp/posenet_i8_failure | |
| ``` | |
| Note that the command can only be run under | |
| `integrations/tensorflow/test/python` directory. | |
| 4. Extract intermediate files and use with native tools | |
| The test will create an `iree_input.mlir` in the temp directory specified. | |
| Those can then be fed into `iree-compile` (built locally to reproduce the | |
| error) | |
| ```bash | |
| iree-compile \ | |
| --iree-hal-target-backends=llvm-cpu \ | |
| --iree-input-type=stablehlo \ | |
| iree_input.mlir | |
| ``` |