Skip to content

Commit 7198a2f

Browse files
add documentation
1 parent c68b24b commit 7198a2f

6 files changed

Lines changed: 39 additions & 10 deletions

File tree

README.md

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,55 @@
88

99
</div>
1010

11-
## 👷‍♀️ Requirements
11+
## 📊 Available tools
1212

13-
Please ensure the following dependencies are installed before running scripts from this repository:
13+
This repository contains multiple scripts which can be run as is for reporting purposes, or serve as a baseline/guide for custom analysis scripts. Below we list all tools, with example outputs below. We also mention which command line argument should be passed to Evolve to generate the requested graphs.
1414

15-
- Python 3.7
16-
- ADB (Android Debug Bridge)
15+
- **`run_on_android.py`** Launches the Evolve benchmark on a connected Android device over ADB and pulls the result files back to your machine. This script requires ADB (Android Debug Bridge) to be installed.
16+
- **`compare_deep_analysis.py`** CLI tool that compares two deep-analysis exports and writes the top 20 passes with the largest mean / standard-deviation differences to CSV. Requires `--export-deep-analysis`.
17+
- **`scores_plotter.ipynb`** Bar chart comparing the Evolve scores per metric across benchmark runs or devices. Requires `--export-scores`.
1718

19+
<img src="./docs/images/tools/scores_plotter.png" width="700">
1820

19-
## 📊 Comparing deep analysis output
21+
- **`per_frame_plotter.ipynb`** Line graph of the per score bucketed execution time/metric (frame time, ray tracing, rasterization, compute, driver, …) throughout the benchmark timeline. Can be used to compare between runs. Requires `--export-per-frame`.
2022

21-
Using the `compare_deep_analysis.py` script located in the `scripts` directory, you can compare the results of two separate deep analysis output files in multiple ways. For the analysis methods, the scripts will first do an attempt to average over all loop iterations of the output. If you ran Evolve with `--looping 5`, each frame in the output will use the mean from each frame from each of the Evolve benchmark iterations.
23+
<img src="./docs/images/tools/per_frame_plotter.png" width="700">
24+
<img src="./docs/images/tools/per_frame_metric.png" width="700">
25+
26+
- **`deep_analysis_plotter.ipynb`** Line graph of the execution time per render/compute/rt pass. Can be used to compare between runs. Requires `--export-deep-analysis`.
27+
28+
<img src="./docs/images/tools/deep_analysis_plotter.png" width="700">
2229

23-
## Additional Requirements
24-
In addition to the requirements listed in [Requirements](#👷‍♀️-requirements), this script also requires the use of several python packages. These can be installed as follows:
30+
- **`frame_breakdown_stackplot.ipynb`** Stacked area chart breaking down each frame's GPU time by render/compute/rt pass (top 20 passes + other). Requires `--export-deep-analysis`.
31+
32+
<img src="./docs/images/tools/frame_breakdown_stackplot.png" width="700">
33+
34+
## 📏 Capturing data
35+
36+
These scripts require specific custom Evolve outputs, which can be generated using the following command line arguments when launching evolve.
37+
38+
- `run-custom --export-scores scores.csv`
39+
- `run-custom --export-per-frame per_frame.csv`
40+
- `run-custom --export-deep-analysis deep_analysis.json`
41+
42+
## 👷‍♀️ Requirements
43+
44+
Please ensure the following dependencies are installed before running scripts from this repository:
45+
46+
- Python 3.11+
47+
- ADB (Android Debug Bridge), only required for `run_on_android.py`
48+
49+
The scripts and notebooks depend on several Python packages, which can be installed with:
2550

2651
```sh
2752
python -m pip install -r requirements.txt
2853
```
2954

30-
## Usage
55+
## 📊 Comparing deep analysis output
56+
57+
Using the `compare_deep_analysis.py` script located in the `scripts` directory, you can compare the results of two separate deep analysis output files in multiple ways. For the analysis methods, the scripts will first do an attempt to average over all loop iterations of the output. If you ran Evolve with `--looping 5`, each frame in the output will use the mean from each frame from each of the Evolve benchmark iterations.
58+
59+
### Usage
3160
```sh
3261
usage: Evolve Deep Analysis Comparison [-h] [--pass_mean_comparison PASS_MEAN_COMPARISON] [--pass_stdev_comparison PASS_STDEV_COMPARISON] deep_analysis_file deep_analysis_file
3362
```
@@ -43,4 +72,4 @@ At least one of `--pass_mean_comparison` or `--pass_stdev_comparison` arguments
4372
### Example usage
4473
```sh
4574
python compare_deep_analysis.py --pass_mean_comparison mean_comparison.csv --pass_stdev_comparison stdev_comparison.csv deep_analysis_gpu_1.json deep_analysis_gpu_2.json
46-
```
75+
```
156 KB
Loading
750 KB
Loading
116 KB
Loading
59 KB
Loading
44.7 KB
Loading

0 commit comments

Comments
 (0)