Files
rocm-systems/src/omniperf_cli/README.md
T

71 lines
1.9 KiB
Markdown
Raw Normal View History

2022-11-04 14:49:36 -05:00
# Description
omniperf_cli.py is a post-processing profiling tool with the raw data collected from omniperf.
## Features
- All Omniperf build-in metrics.
- Multiple runs base line comparison.
- Metrics customization: pick up subset of build-in metrics or build your own profiling configuration.
- Kernel, gpu-id, dispatch-id filters.
Run `omniperf analyze -h` for more details.
## Dependency
- pip3 or conda: install astunparse numpy tabulate pandas pyyaml
## Recommended workflow
- Do a comprehensive analysis with Omniperf GUI at the beginning.
- Choose your own customized subset of metrics with "-b" a.k.a. "--filter-metrics", or build your own config follwing [config_template](configs/panel_config_template.yaml).
- Quick optimization iterations and profiling with customized metrics.
- Redo a comprehensive analysis with Omniperf GUI at any milestone or at the end.
## Demo
- Single run
`omniperf analyze -p path/to/profiling/results/`
- List top kernels
`omniperf analyze -p path/to/profiling/results/ --list-kernels`
- List metrics
`omniperf analyze -p path/to/profiling/results/ --list-metrics gfx90a`
- Customized profiling "system speed of light" and "CS_Busy" only
`omniperf analyze -p path/to/profiling/results/ -b 2 5.1.0`
NB: People can filter single metric or the whole IP block by its id.
In this case, 1 is the id for "system speed of light" and 5.1.0 the id for metric "GPU Busy Cycles".
- Multiple runs
`omniperf analyze -p workload1/path/ -p workload2/path/`
- Filter kernels
`omniperf analyze -p workload1/path/ -k 0 -p workload2/path/ -k 0`
## FAQ
- tabulate doesn't print properly
- export LC_ALL=C.UTF-8
- export LANG=C.UTF-8
- python ast error: 'Constant' object has no attribute 'kind'
It comes from a bug in the default astunparse 1.6.3 with python 3.8.
Seems good with python 3.7 and 3.9.
Quick work-around:
- pip3 uninstall astunparse
- pip3 install astunparse==1.6.2