Files
rocm-systems/docs/how-to/pc_sampling.rst
T
Pratik Basyal ed05c00103 Formatting issue in code block and TOC fixed for PC Sampling (#731)
* Formatting issue in code block and TOC fixed

* Performance model reverted
2025-06-06 16:16:55 -04:00

50 lines
2.6 KiB
ReStructuredText

.. meta::
:description: ROCm Compute Profiler: using PC sampling
:keywords: ROCm Compute Profiler, PC sampling
********************************************
Using PC sampling in ROCm Compute Profiler
********************************************
Program Counter (PC) sampling service for GPU profiling is a profiling technique that periodically samples the program counter during the GPU kernel execution to understand code execution patterns and hotspots.
ROCm Compute Profiler supports Host Trap PC sampling and Stochastic (Hardware-Based) PC sampling.
Host Trap PC sampling is enabled for AMD Instinct MI200 series and later
accelerators. Stochastic (hardware-based) PC sampling is enabled for
AMD Instinct MI300 series and later accelerators. Stochastic PC sampling provides additional information that tells whether a sampled wave issued an instruction for a particular PC. It also provides the reason
for not issuing the instruction (stall reason). This type of information is
particularly useful for understanding stalls during the kernel execution. The PC sampling can be used with profiling and analysis options.
---------------------
Profiling options
---------------------
For using profiling options for PC sampling the configuration needed are:
* ``--pc-sampling-method``: Should be either ``stochastic`` or ``host_trap``
* ``--pc-sampling-interval``: For stochastic sampling, the interval is in cycles. The finest granularity is 1 cycle. For host_trap sampling, the interval is in microsecond (DEFAULT: 1048576). The interval should be the power of 2. You are recommended to try to starting from 1048576, and lowering until reaching 65536.
**Sample command:**
.. code-block:: shell
$ rocprof-compute profile -n pc_test -b 21 --no-roof --pc-sampling-method stochastic --pc-sampling-interval 1048576 -VVV -- target_app
-----------------------
Analysis options
-----------------------
For using analysis options for PC sampling the configuration needed are:
* ``--pc-sampling-sorting-type``: ``offset`` or ``count``. The default option is ``offset``. ``offset`` is an assembly instruction offset in the code object.
**Sample command:**
.. code-block:: shell
$ rocprof-compute analyze -p workloads/pc_test/MI300A_A1/ -b 21 -k 0 --pc-sampling-sorting-type offset
.. note::
* PC sampling feature is currently in BETA version. To enable PC sampling, you have to explicitly enable it with block index 21.
* To associate PC sampling info back to HIP source code, you need to build the profiling target app with ``-g`` to keep the symbols. Otherwise, PC sampling info would be only associated with assembly lines.