GPUPerfAPI

The AMD GPU Performance API (AMD GPUPerfAPI, or GPA) is a powerful library, providing access to GPU Performance Counters. It can help analyze the performance and execution characteristics of applications using an AMD Radeon™ GPU.

AMD GPUPerfAPI is used by the AMD Radeon™ GPU Profiler, as well as several third-party tools including Microsoft PIX on Windows and RenderDoc.

Download the latest version - v4.2

This release adds the following features:

  • Support for additional AMD RDNA™ 4 architecture hardware (AMD Radeon™ RX 9060 GPUs).
  • Support for additional AMD RDNA 3.5 architecture-based APUs (AMD Ryzen™ AI 5 330 Processor with AMD Radeon 820M Graphics).
  • DirectX 11: GPUPerfAPIDXGetAMDDeviceInfo-x64.dll has been removed in favor of Windows Graphics Settings to force select the GPU.
  • GpaGetDeviceMaxWaveSlots() reliability issues have been fixed for DX12.
  • GpaGetDeviceMaxVgprs() entry point has been added.
  • Synchronized access to HW counters using an IPC Mutex when using Windows to prevent multiple apps trying to access the HW counters at the same time.
  • Fixed edge case in parsing SPM data for AMD Radeon RX 6000 and RX 5000 Series graphics hardware.
  • Fixed bug where the DX12 GPA implementation held onto strong references of D3D objects.
  • Removed problematic counters from affecting AMD Radeon RX 6000 Series hardware (VsGsVALUBusy, VsGsVALUBusyCycles, VsGsSALUBusy, VsGsSALUBusyCycles).
  • cacheFlushOnCounterCollection was being inconsistently set by GPA affecting discrete counter output.
  • Fixed GL2C* counters issue affecting AMD Radeon RX 9000 Series graphics hardware.
  • Fixed WriteSize and FetchSize counters on AMD Radeon RX 9000 Series graphics hardware. It was not accounting for all sized reads/writes.
  • Fixed build/test issue preventing users from passing skipvulkan and skpopengl to the build on Windows®.
  • Fixed issue causing release builds taking far longer than they should during the linker step on Windows.

Features

  • Provides a standard API for accessing GPU Performance counters for both graphics and compute workloads across multiple GPU APIs.
  • Supports Vulkan®, DirectX® 12, DirectX® 11, and OpenGL®.
  • Supports all recent AMD RDNA™ architecture-based graphics cards and APUs based on Graphics IP version 10 and newer.
  • Supports both Windows® and Linux®.
  • Provides derived “public” counters based on raw HW counters.
  • Provides access to some raw hardware counters. See Raw Hardware Counters for more information.

Requirements

Supported GPUs

  • AMD Radeon™ AI PRO R9700 Graphics
  • AMD Radeon™ RX 9000 Series Graphics
  • AMD Radeon™ RX 7000 Series Graphics
  • AMD Radeon™ RX 6000 Series Graphics
  • AMD Radeon™ RX 5000 Series Graphics
  • AMD Ryzen™ AI Max 300 Series Processors with Radeon™ 8000S Series Graphics
  • AMD Ryzen™ AI 300 Series Processors with Radeon™ 800M Series Graphics
  • AMD Ryzen™ 8000 Series Processors with Radeon™ 700M Series Graphics
  • AMD Ryzen™ 7000 Series Processors with Radeon™ 700M Series Graphics

Supported graphics APIs

  • DirectX® 12
  • Vulkan®
  • DirectX® 11
  • OpenGL®

Supported OSs

  • Windows® 10
  • Windows® 11
  • Linux® – Ubuntu 24.04 LTS

Version history

  • Support for additional AMD RDNA™ 4 architecture hardware (AMD Radeon™ RX 9060 GPUs).

  • Support for additional AMD RDNA 3.5 architecture-based APUs (AMD Ryzen™ AI 5 330 Processor with AMD Radeon 820M Graphics).

  • DirectX 11: GPUPerfAPIDXGetAMDDeviceInfo-x64.dll has been removed in favor of Windows Graphics Settings to force select the GPU.

  • GpaGetDeviceMaxWaveSlots() reliability issues have been fixed for DX12.

  • GpaGetDeviceMaxVgprs() entry point has been added.

  • Synchronized access to HW counters using an IPC Mutex when using Windows to prevent multiple apps trying to access the HW counters at the same time.

  • Fixed edge case in parsing SPM data for AMD Radeon RX 6000 and RX 5000 Series graphics hardware.

  • Fixed bug where the DX12 GPA implementation held onto strong references of D3D objects.

  • Removed problematic counters from affecting AMD Radeon RX 6000 Series hardware (VsGsVALUBusy, VsGsVALUBusyCycles, VsGsSALUBusy, VsGsSALUBusyCycles).

  • cacheFlushOnCounterCollection was being inconsistently set by GPA affecting discrete counter output.

  • Fixed GL2C* counters issue affecting AMD Radeon RX 9000 Series graphics hardware.

  • Fixed WriteSize and FetchSize counters on AMD Radeon RX 9000 Series graphics hardware. It was not accounting for all sized reads/writes.

  • Fixed build/test issue preventing users from passing skipvulkan and skpopengl to the build on Windows®.

  • Fixed issue causing release builds taking far longer than they should during the linker step on Windows.

Related news and technical articles