.. meta::
:description: ROCm Systems Profiler introduction, explanation, and reference
:keywords: rocprof-sys, rocprofiler-systems, Omnitrace, ROCm, profiler, explanation, introduction, what is, tracking, visualization, tool, Instinct, accelerator, AMD
******************************
What is ROCm Systems Profiler?
******************************
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.
A visualization of the comprehensive ROCm Systems Profiler results can be observed in any modern
web browser. Upload the Perfetto (``.proto``) output files produced by ROCm Systems Profiler at
`ui.perfetto.dev `_ to see the details.
.. important::
If you are using a version of ROCm prior to ROCm 6.3.1 and are experiencing problems viewing your
trace in the latest version of [Perfetto](http://ui.perfetto.dev), then try using
[Perfetto UI v46.0](https://ui.perfetto.dev/v46.0-35b3d9845/#!/).
Aggregated high-level results are available as human-readable text files and
JSON files for programmatic analysis. The JSON output files are compatible with the
`hatchet `_ Python package. Hatchet converts
the performance data into pandas data frames and facilitates multi-run comparisons, filtering,
and visualization in Jupyter notebooks.
To use ROCm Systems Profiler for instrumentation, follow these two configuration steps:
#. Indicate the functions and modules to :doc:`instrument <./how-to/instrumenting-rewriting-binary-application>` in the target binaries, including the executable and any libraries
#. Specify the :doc:`instrumentation parameters <./how-to/configuring-runtime-options>` to use when the instrumented binaries are launched