.. meta::
   :description: ROCm Systems Profiler documentation and reference
   :keywords: rocprof-sys, rocprofiler-systems, Omnitrace, ROCm, profiler, tracking, visualization, tool, Instinct, accelerator, AMD

*******************************************
ROCm Systems Profiler (rocprofiler-systems)
*******************************************

ROCm Systems Profiler is designed for the high-level profiling and comprehensive tracing
of applications running on the CPU or the CPU and GPU. It supports dynamic binary
instrumentation, call-stack sampling, and various other features for determining
which function and line number are currently executing. To learn more, see :doc:`what-is-rocprof-sys`

ROCm Systems Profiler is open source and hosted at `<https://github.com/ROCm/rocm-systems>`__.
It is the successor to `<https://github.com/ROCm/omnitrace>`__.

.. grid:: 2
  :gutter: 3

  .. grid-item-card:: Install

    * :doc:`Install ROCm Systems Profiler <./install/install>`
    * :doc:`Build from source <./install/build>`

Use the following topics to learn more about the advantages of ROCm Systems Profiler in application
profiling, how it supports performance analysis, and how to leverage its capabilities in practice:

.. grid:: 2
  :gutter: 3

  .. grid-item-card:: How to

    * :doc:`Configuring the environment <./how-to/configuring-validating-environment>`

      * :doc:`Configuring runtime options <./how-to/configuring-runtime-options>`

    * :doc:`Profiling <./how-to/general-tips-using-rocprof-sys>`

      * :doc:`Sampling the call stack <./how-to/sampling-call-stack>`
      * :doc:`Attaching to a running process <./how-to/attaching-to-running-process>`
      * :doc:`Instrumenting and rewriting a binary application <./how-to/instrumenting-rewriting-binary-application>`
      * :doc:`Performing causal profiling <./how-to/performing-causal-profiling>`
      * :doc:`Profiling Python scripts <./how-to/profiling-python-scripts>`
      * :doc:`Network performance profiling <./how-to/nic-profiling>`
      * :doc:`Communication runtime profiling <./how-to/communication-runtime-profiling>`
      * :doc:`Unified memory profiling <./how-to/unified-memory-profiling>`
      * :doc:`OpenMP performance profiling <./how-to/openmp-profiling>`
      * :doc:`VCN and JPEG sampling and tracing <./how-to/vcn-jpeg-sampling>`
      * :doc:`XGMI, PCIe, and SDMA metrics monitoring <./how-to/xgmi-pcie-sdma-sampling>`

    * :doc:`Understanding the output <./how-to/understanding-rocprof-sys-output>`
    * :doc:`Use the preset profiles <./how-to/using-preset-profiles>`
    * :doc:`Use the ROCm Systems Profiler API <./how-to/using-rocprof-sys-api>`

  .. grid-item-card:: Conceptual

    * :doc:`Data collection modes <./conceptual/data-collection-modes>`
    * :doc:`Features and use cases <./conceptual/rocprof-sys-feature-set>`

  .. grid-item-card:: Reference

    * :doc:`Development guide <./reference/development-guide>`
    * :doc:`Glossary <./reference/rocprof-sys-glossary>`
    * :doc:`API library <./doxygen/html/files>`
    * :doc:`Class member functions <./doxygen/html/functions>`
    * :doc:`Globals <./doxygen/html/globals>`
    * :doc:`Classes, structures, and interfaces <./doxygen/html/annotated>`

  .. grid-item-card:: Tutorials

    * `GitHub examples <https://github.com/ROCm/rocm-systems/tree/develop/projects/rocprofiler-systems/examples>`_
    * :doc:`Video tutorials <./tutorials/video-tutorials>`

To contribute to the documentation, refer to
`Contributing to ROCm <https://rocm.docs.amd.com/en/latest/contribute/contributing.html>`_.

You can find licensing information on the
`Licensing <https://rocm.docs.amd.com/en/latest/about/license.html>`_ page.
