forked from iree-org/iree
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request iree-org#6949 from not-jenni:main-to-google
PiperOrigin-RevId: 394551308
- Loading branch information
Showing
59 changed files
with
1,014 additions
and
447 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# IREE Benchmarks | ||
|
||
This directory contains configuration definition for IREE's continuous | ||
benchmarks suite. Benchmark results are posted to https://perf.iree.dev. | ||
|
||
The https://buildkite.com/iree/iree-benchmark Buildkite pipeline runs on each | ||
commit to the `main` branch and posts those results to the dashboard. The | ||
pipeline also runs on pull requests with the `buildkite:benchmark` label, | ||
posting results compared against their base commit as comments. | ||
|
||
## Types of benchmarks | ||
|
||
``` | ||
├── TensorFlow | ||
│ * models authored in TensorFlow and imported with `iree-import-tf` | ||
└── TFLite | ||
* models converted to TensorFlow Lite and imported with `iree-import-tflite` | ||
``` | ||
|
||
## Adding new benchmarks | ||
|
||
### Machine learning model latency | ||
|
||
1. Pick the model you want to benchmark and find its source, which could be | ||
a Python script, TensorFlow SavedModel from https://tfhub.dev/, TensorFlow | ||
Lite FlatBuffer, or some other format with a supported path into IREE. The | ||
model can optionally include trained weights if those are important for | ||
benchmarking. | ||
|
||
2. Import the model into an MLIR file that IREE can compile using the core | ||
`iree-translate` tool. For TensorFlow models use `iree-import-tf`, for | ||
TensorFlow Lite models use `iree-import-tflite`, etc. Take notes for where | ||
the model came from and how it was imported in case the MLIR file needs to | ||
be regenerated in the future. | ||
|
||
We may further automate this over time, such as by importing from Python | ||
sources as part of the benchmarks pipeline directly (see | ||
https://github.com/google/iree/issues/6942). For now, here are some | ||
references: | ||
|
||
* https://gist.github.com/antiagainst/35b0989bd0188dd9df4630bb0cf778f2 | ||
* https://colab.research.google.com/gist/ScottTodd/10838c0ccc87fa6d1b1c72e0fabea064/iree-keyword_spotting_streaming-benchmarks.ipynb | ||
|
||
3. Package the imported .mlir model file(s) for storage (see | ||
[iree_mlir_benchmark_suite.cmake](../build_tools/cmake/iree_mlir_benchmark_suite.cmake) | ||
and [download_file.py](../scripts/download_file.py)), then upload them to the | ||
`iree-model-artifacts` Google Cloud Storage bucket with the help of a team | ||
member. Files currently hosted in that bucket can be viewed at | ||
https://storage.googleapis.com/iree-model-artifacts/index.html. | ||
|
||
4. Edit the appropriate `CMakeLists.txt` file under this directory to include | ||
your desired benchmark configuration with the `iree_mlir_benchmark_suite` | ||
function. You can test your change by running the | ||
https://buildkite.com/iree/iree-benchmark pipeline on a GitHub pull request | ||
with the `buildkite:benchmark` label. | ||
|
||
5. Once your changes are merged to the `main` branch, results will start to | ||
appear on the benchmarks dashboard at https://perf.iree.dev. | ||
|
||
### Other project metrics | ||
|
||
TODO(#6161): Collect metrics for miscellaneous IREE system states |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.