.. meta::
   :description: What is ROCm Compute Profiler?
   :keywords: Omniperf, ROCm, profiler, tool, Instinct, accelerator, AMD

******************************
What is ROCm Compute Profiler?
******************************

ROCm Compute Profiler is a kernel-level profiling tool for machine learning and high
performance computing (HPC) workloads running on AMD Instinct™ GPUs.

AMD Instinct MI-Series GPUs are data center-class GPUs designed for
compute and have some graphics capabilities disabled or removed.
ROCm Compute Profiler primarily targets use with
:doc:`GPUs in the AMD Instinct MI300, MI200, and MI100 Series <rocm:conceptual/gpu-arch>`.
Development is in progress to support Radeon™ (RDNA) GPUs.

ROCm Compute Profiler is built on top of :doc:`ROCprofiler-SDK <rocprofiler-sdk:index>` to
monitor hardware performance counters.

.. _high-level-design:

High-level design
=================

The architecture of ROCm Compute Profiler consists of three major components shown in the
following diagram.

Core ROCm Compute Profiler
--------------------------

Acquires raw performance counters via application replay using
:doc:`ROCprofiler-SDK <rocprofiler-sdk:index>`. See
:ref:`core-install-rocprof-var` for details on the profiling backends and the
native counter collection tool. 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.

ROCm Compute Profiler standalone GUI analyzer (experimental)
-------------------------------------------------------------

ROCm Compute Profiler provides a :doc:`standalone GUI <how-to/analyze/standalone-gui>` to
enable basic performance analysis.

Features
========

ROCm Compute Profiler 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, ROCm Compute Profiler provides in-depth memory chart analysis, roofline
analysis, baseline comparisons, and more, ensuring a thorough understanding of
system performance.

ROCm Compute Profiler supports several analysis options. See
:doc:`analyze mode </how-to/analyze/mode>` for the full list and guidance on
choosing between them.

The following list describes ROCm Compute Profiler's features at a high level.

* :doc:`Support for AMD Instinct MI300, MI200, and MI100 accelerators <reference/compatible-accelerators>`

* :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>`
