Description
Performance analysis tools provide profiling and tracing capabilities that help developers understand the behavior of their applications.
However, instrumenting only the entry and exit points of functions may not provide sufficient information to correctly identify performance bottlenecks.
A function may contain hundreds of lines of code, multiple nested loops, or regions that may not be easy to manually instrument.
To obtain finer-grained performance information, performance analysis tools can periodically inspect the execution state of an application through sampling.
Sampling can capture information about the currently executing code, such as source locations, executed instructions, and, when supported, stall events and their causes.
We have extended the TAU Performance System to support sampling on both CPUs and GPUs. GPU sampling is supported on NVIDIA, AMD and Intel hardware.
On NVIDIA GPUs, both sampling and stall events are generally available.
On AMD GPUs, sampling is supported on modern devices, but stall events are currently limited to the MI300 and MI350 series. On Intel GPUs, both sampling and stall events are supported only on recent GPU architectures (Data Center GPUs and newer generations).
This extension of the TAU Performance System provides a unified performance analysis tool across heterogeneous CPU-GPU systems on modern HPC platforms.