Collect Phase - Collect Phase - 57368

uProf User Guide

Document_ID
57368
Release_Date
2025-06-09
Revision
5.1 English

Important concepts of the collect phase are explained in this section.

Profile Target

The profile target is one of the following for which profile data will be collected:

  • Application — Launch application and profile that process and its children.
  • System — Profile all the running processes and/or kernel.
  • Process — Attach to a running application (native applications only).

Profile Type

The profile type defines the type of profile data collected and how the data should be collected. The following profile types are supported:

  • CPU Profile
  • CPU Trace
  • GPU Profile
  • GPU Trace
  • System-wide Power Profile

The data collection is defined by Sampling Configuration:

  • Sampling Configuration identifies the set of Sampling Events, their Sampling Interval, and mode.
  • Sampling Event is a resource used to trigger a sampling point at which a sample (profile data) will be collected.
  • Sampling Interval defines the number of the occurrences of the sampling event after which an interrupt will be generated to collect the sample.
  • Mode defines when to count the occurrences of the sampling event – in User mode and/or OS mode.

Type of profile data to collect – Sampled Data:

Sampled Data — the profile data that can be collected when the interrupt is generated (upon the expiry of the sampling interval of a sampling event).

The following table shows the type of profile data collected and sampling events for a profile type:

Table 1. Sampled Data
Profile Type Type of Profile Data Collected Sampling Events
CPU Profiling
  • Process ID
  • Thread ID
  • IP
  • Callstack
  • ETL tracing (Windows only)
  • OpenMP Trace — OMPT (Linux)
  • MPI Trace — PMPI (Linux)
  • OS Trace — Linux BPF
  • OS Timer
  • Core PMC events
  • IBS
CPU Tracing
  • Collects pthread API, system calls, function trace, page faults and memory allocations
Not applicable
GPU Profiling Perfmon Metrics Not applicable
GPU Tracing Runtime Trace — HIP and HSA Not applicable

For CPU Profiling, there are numerous micro-architecture specific events available to monitor. The tool groups the related and interesting events to monitor called Predefined Sampling Configuration. For example, Assess Performance is one such configuration used to get the overall assessment of the performance and to find potential issues for investigation. For more information, see Predefined View Configuration.

A Custom Sampling Configuration is the one in which you can define a sampling configuration with events of interest.

Profile Configuration

A profile configuration identifies all the information used to collect the measurement. It contains the information about profile target, sampling configuration, data to sample, and profile scheduling details.

The GUI saves these profile configuration details with a default name (for example, AMDuProf-TBP- Classic), you can define them too. As the performance analysis is iterative, this is persistent (can be deleted) and hence, you can also reuse the same configuration for the future data collection runs.

Profile Session (or Profile Run)

A profile session represents a single performance experiment for a profile configuration. The tool saves all the profile and translated data (in a database) in the folder named as <profile config name>-<timestamp>.

Once the profile data is collected, uProf processes the data to aggregate and attribute the samples to the respective processes, threads, load modules, functions, and instructions. This aggregated data is then written into an SQLite database used during the Analyze phase. This process of the translating the raw profile data happens when CLI generates the profile report or GUI generates the visualization.