5d22d5ac8e
* 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]
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>`
|