Files
rocm-systems/src/omniperf_cli
colramos-amd d884f89a69 Make saved analysis output verbose
Signed-off-by: colramos-amd <colramos@amd.com>
2022-11-10 09:54:26 -06:00
..
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-04 14:49:36 -05:00
2022-11-10 09:54:26 -06:00
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
  • 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.
  • 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