Files
rocm-systems/projects/rocprofiler-compute/docs/what-is-omniperf.rst
T
Peter Park 5d22d5ac8e Docs: refactor and integrate into ROCm docs portal (#362)
* pip-compile docs/requirements.txt

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add Sphinx docs config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add Sphinx config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update docs build config

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* style(conf.py): Apply black formatting to docs/conf.py

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

* Update docs requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update to rocm-docs-core 1.3.0

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update docs requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

pip-compile requirements

Signed-off-by: Peter Jun Park <peter.park@amd.com>

bump rocm-docs-core to 1.5.0

bump rocm-docs-core to 1.4.1

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* Add dependabot.yml and update CODEOWNERS

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Update toc and conf

Signed-off-by: Peter Jun Park <peter.park@amd.com>

update dependabot

* Port docs to rocm-docs standard

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add toc and Diataxis cards

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add basic file structure

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add glossary

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add includes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

Add license.rst

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add compatible hw

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix spelling and license

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up index

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up installation guides

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add basic usage (quickstart)

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add ref to global options

update toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

modularize modes and global options

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add profile mode

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg and clean up

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add dynamic omniperf version number in installation guide

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add datatemplate

more reorg

Signed-off-by: Peter Jun Park <peter.park@amd.com>

clean up

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg images

move profile mode

reorg

reorg

reorg more

fix formatting

fix headings

ref anchor mi2xx note

add extlinks

add extlinks

Signed-off-by: Peter Jun Park <peter.park@amd.com>

black format

fix formatting, anchors

Signed-off-by: Peter Jun Park <peter.park@amd.com>

reorg

fix words and formatting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

formatting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

same

reorg

format

fix formatting

fix toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

format

* impr internal linking and fix sphinx warnings

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add spellcheck/linting from rocm-docs-core

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix rst directives

satisfy spellcheck

fix more spelling

rm unused files

fix spelling and update wordlist

* bump rocm-docs-core to 1.6.0

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add fixes from @skyreflectedinmirrors and @lpaoletti

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add references to toc

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add more fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add package manager install section

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* add fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add metadata and fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add fixes

bump to 1.6.1

more fixes

fix fmt in profiling examples

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add missing mem type table

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix formatting

fmt

* add custom css

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix css fs

* make images/figs click-to-expand

Signed-off-by: Peter Jun Park <peter.park@amd.com>

add missed image

update

fix link

* update documentation link in README

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* formatting fixes

Signed-off-by: Peter Jun Park <peter.park@amd.com>

more formatting

* fix heading

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* move archived docs

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* exclude archived docs from docs build

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* update archived docs workflow

Signed-off-by: Peter Jun Park <peter.park@amd.com>

move files

update archived docs workflow

Signed-off-by: Peter Jun Park <peter.park@amd.com>

fix version number

clean up workflow

workflow test

workflow test

another workflow test

* rm docs linting

Signed-off-by: Peter Jun Park <peter.park@amd.com>

* Apply cmake-format suggested changes

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

* Apply cmake-format

Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

---------

Signed-off-by: Peter Jun Park <peter.park@amd.com>
Signed-off-by: Sam Wu <22262939+samjwu@users.noreply.github.com>
Co-authored-by: Sam Wu <22262939+samjwu@users.noreply.github.com>

[ROCm/rocprofiler-compute commit: a0dc485ceb]
2024-08-09 09:46:42 -04:00

130 lines
4.7 KiB
ReStructuredText

.. meta::
:description: What is Omniperf?
:keywords: Omniperf, ROCm, profiler, tool, Instinct, accelerator, AMD
*****************
What is Omniperf?
*****************
Omniperf is a kernel-level profiling tool for machine learning and high
performance computing (HPC) workloads running on AMD Instinct™ accelerators.
AMD Instinct MI-series accelerators are data center-class GPUs designed for
compute and have some graphics capabilities disabled or removed. Omniperf
primarily targets use with
:doc:`accelerators in the MI300, MI200, and MI100 families <rocm:conceptual/gpu-arch>`.
Development is in progress to support Radeon™ (RDNA) GPUs.
Omniperf is built on top of :doc:`ROCProfiler <rocprofiler:rocprofv1>` to
monitor hardware performance counters.
.. _high-level-design:
High-level design of Omniperf
=============================
The architecture of Omniperf consists of three major components shown in the
following diagram.
Core Omniperf profiler
----------------------
Acquires raw performance counters via application replay using ``rocprof``.
Counters are stored in a comma-separated-values format for further
:doc:`analysis <how-to/analyze/mode>`. It runs a set of accelerator-specific
micro-benchmarks to acquire hierarchical roofline data. The roofline model is
not available on accelerators pre-MI200.
Grafana server for Omniperf
---------------------------
* **Grafana database import**: All raw performance counters are imported into
a :ref:`backend MongoDB database <grafana-mongodb-setup>` to support
analysis and visualization in the Grafana GUI. Compatibility with
previously generated data using older Omniperf versions is not guaranteed.
* **Grafana analysis dashboard GUI**: The
:doc:`Grafana dashboard <how-to/analyze/grafana-gui>` retrieves the raw
counters information from the backend database. It displays the relevant
performance metrics and visualization.
Omniperf standalone GUI analyzer
--------------------------------
Omniperf provides a :doc:`standalone GUI <how-to/analyze/standalone-gui>` to
enable basic performance analysis without the need to import data into a
database instance. Find setup instructions in :doc:`install/grafana-setup`
.. image:: data/install/omniperf_server_vs_client_install.png
:align: center
:alt: Architectural design of Omniperf
:width: 800
Omniperf features
=================
Omniperf offers comprehensive profiling based on all available hardware counters
for the target accelerator. It delivers advanced performance analysis features,
such as system Speed-of-Light (SOL) and hardware block-level SOL evaluations.
Additionally, Omniperf provides in-depth memory chart analysis, roofline
analysis, baseline comparisons, and more, ensuring a thorough understanding of
system performance.
Omniperf supports analysis through both the :doc:`command line </how-to/analyze/cli>` or a
:doc:`GUI </how-to/analyze/grafana-gui>`. The following list describes Omniperf's features at a
high level.
* :doc:`Support for AMD Instinct MI300, MI200, and MI100 accelerators <reference/compatible-accelerators>`
* :doc:`Standalone GUI analyzer </how-to/analyze/standalone-gui>`
* :doc:`GUI analyzer via Grafana and MongoDB </how-to/analyze/grafana-gui>`
* :ref:`System Info panel <grafana-panel-sys-info>`
* :ref:`Kernel Statistic panel <grafana-panel-kernel-stats>`
* :ref:`System Speed-of-Light panel <grafana-panel-system-sol>`
* :ref:`Memory Chart Analysis panel <grafana-panel-memory-chart-analysis>`
* :ref:`Roofline Analysis panel <grafana-panel-roofline-analysis>`
(*Supported on MI200 only, Ubuntu 20.04, SLES 15 SP3 or RHEL8*)
* :ref:`Command Processor (CP) panel <grafana-panel-cp>`
* :ref:`Workgroup Manager (SPI) panel <grafana-panel-spi>`
* :ref:`Wavefront Launch panel <grafana-panel-wavefront>`
* :ref:`Compute Unit - Instruction Mix panel <grafana-panel-cu-instruction-mix>`
* :ref:`Compute Unit - Pipeline panel <grafana-panel-cu-compute-pipeline>`
* :ref:`Local Data Share (LDS) panel <grafana-panel-lds>`
* :ref:`Instruction Cache panel <grafana-panel-instruction-cache>`
* :ref:`Scalar L1D Cache panel <grafana-panel-sl1d-cache>`
* :ref:`L1 Address Processing Unit, or, Texture Addresser (TA) <grafana-panel-ta>`
and :ref:`L1 Backend Data Processing Unit, or, Texture Data (TD) <grafana-panel-td>` panels
* :ref:`Vector L1D Cache panel <grafana-panel-vl1d>`
* :ref:`L2 Cache panel <grafana-panel-l2-cache>`
* :ref:`L2 Cache (per-channel) panel <grafana-panel-l2-cache-per-channel>`
* :ref:`Filtering <filtering>` to reduce profiling time
* Filtering by dispatch
* Filter by kernel
* Filtering by GPU ID
* :ref:`Baseline comparisons <analysis-baseline-comparison>`
* :ref:`Multiple normalizations <normalization-units>`