.. 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™ accelerators. AMD Instinct MI-series accelerators are data center-class GPUs designed for compute and have some graphics capabilities disabled or removed. ROCm Compute Profiler primarily targets use with :doc:`accelerators in the MI300, MI200, and MI100 families `. Development is in progress to support Radeon™ (RDNA) GPUs. ROCm Compute Profiler is built on top of :doc:`ROCProfiler ` 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 ``rocprof``. Counters are stored in a comma-separated-values format for further :doc:`analysis `. 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 ROCm Compute Profiler ---------------------------------------- * **Grafana database import**: All raw performance counters are imported into a :ref:`backend MongoDB database ` to support analysis and visualization in the Grafana GUI. Compatibility with previously generated data using older ROCm Compute Profiler versions is not guaranteed. * **Grafana analysis dashboard GUI**: The :doc:`Grafana dashboard ` retrieves the raw counters information from the backend database. It displays the relevant performance metrics and visualization. ROCm Compute Profiler standalone GUI analyzer --------------------------------------------- ROCm Compute Profiler provides a :doc:`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 ROCm Compute Profiler :width: 800 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 analysis through both the :doc:`command line ` or a :doc:`GUI `. The following list describes ROCm Compute Profiler's features at a high level. * :doc:`Support for AMD Instinct MI300, MI200, and MI100 accelerators ` * :doc:`Standalone GUI analyzer ` * :doc:`GUI analyzer via Grafana and MongoDB ` * :ref:`System Info panel ` * :ref:`Kernel Statistic panel ` * :ref:`System Speed-of-Light panel ` * :ref:`Memory Chart Analysis panel ` * :ref:`Roofline Analysis panel ` (*Supported on MI200 and above architectures only) * :ref:`Command Processor (CP) panel ` * :ref:`Workgroup Manager (SPI) panel ` * :ref:`Wavefront Launch panel ` * :ref:`Compute Unit - Instruction Mix panel ` * :ref:`Compute Unit - Pipeline panel ` * :ref:`Local Data Share (LDS) panel ` * :ref:`Instruction Cache panel ` * :ref:`Scalar L1D Cache panel ` * :ref:`L1 Address Processing Unit or Texture Addresser (TA) `; and :ref:`L1 Backend Data Processing Unit or Texture Data (TD) ` panels * :ref:`Vector L1D Cache panel ` * :ref:`L2 Cache panel ` * :ref:`L2 Cache (per-channel) panel ` * :ref:`Filtering ` to reduce profiling time * Filtering by dispatch * Filter by kernel * Filtering by GPU ID * :ref:`Baseline comparisons ` * :ref:`Multiple normalizations `