Overview - Overview - 57368

uProf User Guide

Document ID
57368
Release Date
2025-06-09
Revision
5.1 English

AMD uProf CPU profiler follows a statistical sampling-based approach to collect profile data to identify the performance bottlenecks in the application. A few high-level features to understand the CPU profiler capabilities are listed here:

  • Profile data is collected using one of the following approaches:
    • Event Based Profiling (EBP) — sampling based on Core PMC events to identify micro- architecture related performance issues in the profiled applications.
    • Instruction based Sampling (IBS) — precise instruction-based sampling.
  • Call-stack Sampling
  • Secondary Profile Data
    • Thread concurrency (Windows only, requires admin privilege)
    • Thread names (Windows and Linux only)
  • Profile Scope
    • Launch App— launch an application and profile that process and its children.
    • System-wide — profile all the running processes and/or kernel.
    • Attach Process — Attach to an existing application (Native applications only)
  • Profile mode
    • User/Kernel — profile data is collected when the application is running in User and/or Kernel mode.
  • Supported Languages:
    • C, C++
    • Java
    • .NET (5.0, 6.0, and Framework)
    • FORTRAN
    • Assembly applications
  • Supported Software Components
    • User-space applications
    • Dynamically linked/loaded modules
    • Drivers
    • OS kernel modules
  • Profile data is attributed at various granularities
    • Process, Thread, Load Module, Function, Source line, or Disassembly
    • C++ and Java in-lined functions
      Note: uProf requires debug information from the compiler for correlating the profile data to functions and source lines.
  • Data and Report Files
    • Collected profile data initially stored to raw data files.
    • Processed profile data is stored to database files used for generating the CLI report or GUI visualization.
    • Profile report is saved to a comma-separated-value (CSV) format file that can be viewed using any spreadsheet viewer.
  • AMDuProfCLI, the command-line-interface can be used to configure a profile run, collect the profile data, and generate the profile report.
    • Collect command to configure and collect the profile data.
    • Report command to process the profile data and to generate the profile report.
    • Profile command to collect the performance profile data, analyze it, and generate the profile report.
  • AMDuProf GUI can be used to:
    • Configure a profile run.
    • Start the profile run to collect the performance data.
    • Analyze the performance data to identify potential bottlenecks.
  • AMDuProf GUI has various UI elements to analyze and view the profile data at various granularities:
    • Hot spots summary
    • Session Information
    • Thread concurrency graph (Windows only and requires admin privileges)
    • Process and function analysis
    • Source and disassembly analysis
    • Top-down and bottom-up call path — visualizations to explore the function call flow of an application for analyzing the time spent on functions and its callees.
    • Flame Graph — callstack visualizer as a flame graph
    • Call Graph — call stack and caller/callee visualizer in table format
    • HPC — to analyze OpenMP and MPI profile data
    • Timeline Visualizer — timeline views for MPI API trace and OS event trace information
    • Cache Analysis — to analyze the hot cache lines that are false shared
  • Profile Control API
    • Selectively enable and disable profiling from the target application by instrumenting it, to limit the scope of the profiling