a0dc485ceb
* 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>
130 lines
4.7 KiB
ReStructuredText
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>`
|