Skip to content

Compute Baseline Output

Kel edited this page Sep 29, 2025 · 6 revisions

This guide explains the output when running compute baselines and compute tests in the Metal Performance Tester tool. The tool uses real GPU performance counter data and multi-iteration statistical analysis for accurate and reliable performance measurements.

Compute Baseline Configuration

Running 100 iterations to create compute baseline...
Progress: (100/100)
------------------------------------------------------------
COMPUTE PERFORMANCE BASELINE

Compute Baseline Configuration:
- Baseline: Max Compute Baseline
- Device: Apple M1 Pro
- Threadgroup size: 16x16x1
- Threadgroup count: 64x64x1
- Compute workload complexity: 10/10

Explanation:

Running 100 iterations to create compute baseline: The operation being executed with statistical sampling

Compute Baseline Configuration: The baseline configuration details

  • Baseline: The name of the compute baseline preset being used
  • Device: The GPU hardware being tested (e.g., AMD Radeon Pro 5300M)
  • Threadgroup size: Dimensions of each compute threadgroup (width × height × depth)
  • Threadgroup count: Number of threadgroups to dispatch (width × height × depth)
  • Compute workload complexity: Complexity level from 1/10 to 10/10

Compute Baseline Results

Compute Performance:
- Throughput: 48.6 ops/sec (30.5 - 59.7)

Compute Time:
- Average: 66.745 ms
- Standard Deviation: 0.744 ms
- Range: 66.349 - 73.526 ms
- Median: 66.632 ms

Compute Utilization:
- Average Compute Utilization: 85.2%
- Average Memory Utilization: 42.1%
- Average Total Utilization: 63.7%
- Average Threadgroup Efficiency: 78.5%

Memory Statistics:
- Memory Bandwidth: 43279.0 MB/s
- Cache Hits: 9.0
- Cache Misses: 0.0
- Cache Hit Rate: 100.0%
- Instructions Executed: 65536000

Explanation:

Compute Performance:

  • Throughput: Compute operations per second (min - max)
  • Shows real-time compute capability of the GPU for compute workloads

Compute Time:

  • Average: Average GPU execution time across all iterations
  • Standard Deviation: Measure of variability in the measurements
  • Range: Minimum and maximum values observed
  • Median: Middle value when all measurements are sorted

Compute Utilization: Real GPU utilization metrics from hardware counters

  • Average Compute Utilization: Real compute shader utilization from GPU hardware
  • Average Memory Utilization: Real memory subsystem utilization from GPU hardware
  • Average Total Utilization: Real overall GPU utilization from hardware
  • Average Threadgroup Efficiency: Real threadgroup execution efficiency from GPU hardware

Memory Statistics: Real GPU memory performance from hardware counters

  • Memory Bandwidth: Actual memory bandwidth usage in MB/s from GPU hardware
  • Instructions Executed: Estimated instruction count based on compute workload complexity

Understanding Compute Utilization Values:

  • High Compute Utilization (80-100%): GPU compute units are working efficiently
  • Medium Compute Utilization (50-80%): Balanced compute workload
  • Low Compute Utilization (<50%): May indicate underutilization or memory bottlenecks

Understanding Compute Utilization Values:

  • High Compute Utilization (80-100%): GPU compute units are working efficiently
  • Medium Compute Utilization (50-80%): Balanced compute workload
  • Low Compute Utilization (<50%): May indicate underutilization or memory bottlenecks

Understanding Threadgroup Efficiency:

  • High Threadgroup Efficiency (80-100%): Threadgroups are executing efficiently with good occupancy
  • Medium Threadgroup Efficiency (60-80%): Reasonable threadgroup utilization
  • Low Threadgroup Efficiency (<60%): May indicate poor threadgroup sizing or memory bottlenecks

Understanding Memory Performance:

  • High Memory Bandwidth (>100GB/s): Excellent memory subsystem performance
  • Medium Memory Bandwidth (50-100GB/s): Good memory performance for most workloads
  • Low Memory Bandwidth (<50GB/s): May indicate memory bottlenecks or bandwidth limitations

Real GPU Performance Counter Data

Hardware-Based Metrics: The Metal Performance Tester now uses real GPU performance counter data from the Metal performance sampling system:

  • Memory Bandwidth: Direct measurement from GPU memory subsystem
  • Compute Utilization: Actual GPU compute unit utilization from hardware
  • Threadgroup Efficiency: Real threadgroup execution efficiency from hardware
  • Instructions Executed: Intelligent estimates when hardware counters aren't available

Vendor-Specific Support:

  • Apple Silicon: Native Metal performance counter integration

Key Metrics to Monitor

For Performance Analysis:

  1. Throughput: Primary performance metric (compute operations per second)
  2. Compute Time: Real GPU execution time for compute workloads
  3. Memory Bandwidth: Real GPU memory subsystem performance
  4. Compute Utilization: Real GPU compute unit efficiency

For Regression Detection:

  1. Compute Time: Used for baseline comparison with statistical analysis
  2. Compute Utilization: Real GPU utilization to identify bottlenecks
  3. Memory Performance: Hardware-based memory efficiency metrics

For Optimization:

  1. Compute vs Memory Utilization: Real GPU compute unit vs memory utilization from hardware
  2. Threadgroup Efficiency: Real threadgroup execution efficiency from hardware
  3. Instructions Executed: Workload complexity analysis
  4. Memory Bandwidth: Real memory subsystem performance

Performance Trends to Expect

Threadgroup Scaling:

  • Compute time increases with threadgroup count
  • Memory bandwidth requirements scale with threadgroup count
  • Threadgroup efficiency may vary with threadgroup sizing

Complexity Scaling:

  • Higher complexity affects both compute and memory processing
  • More complex compute shaders stress compute units more
  • Memory access patterns change with complexity levels

Workload Scaling:

  • Compute utilization increases with workload complexity
  • Memory utilization scales with data access patterns
  • Throughput performance depends on compute workload efficiency

Documentation

The Compute Test Results doc can be found here.

The main project Metal Performance Tester README is here.

Clone this wiki locally