Repository navigation
Compute Baseline Output
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.
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
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 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
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
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
- Throughput: Primary performance metric (compute operations per second)
- Compute Time: Real GPU execution time for compute workloads
- Memory Bandwidth: Real GPU memory subsystem performance
- Compute Utilization: Real GPU compute unit efficiency
- Compute Time: Used for baseline comparison with statistical analysis
- Compute Utilization: Real GPU utilization to identify bottlenecks
- Memory Performance: Hardware-based memory efficiency metrics
- Compute vs Memory Utilization: Real GPU compute unit vs memory utilization from hardware
- Threadgroup Efficiency: Real threadgroup execution efficiency from hardware
- Instructions Executed: Workload complexity analysis
- Memory Bandwidth: Real memory subsystem performance
- Compute time increases with threadgroup count
- Memory bandwidth requirements scale with threadgroup count
- Threadgroup efficiency may vary with threadgroup sizing
- Higher complexity affects both compute and memory processing
- More complex compute shaders stress compute units more
- Memory access patterns change with complexity levels
- Compute utilization increases with workload complexity
- Memory utilization scales with data access patterns
- Throughput performance depends on compute workload efficiency
The Compute Test Results doc can be found here.
The main project Metal Performance Tester README is here.