🤖 AI Summary
Identifying performance bottlenecks in GPU shared-memory atomic operations (e.g., fetch-and-add, CAS) remains challenging due to their complex, microarchitecture-dependent behavior. Method: We propose the first analytical model grounded in single-server queuing theory, integrating CUDA hardware performance counters with Volta/Ampere microarchitectural characteristics. It quantitatively models load-dependent behaviors of the shared-memory atomic unit—including pipeline depth, parallelism, and memory access patterns—to enable precise bottleneck attribution and cross-kernel comparative diagnosis. Contribution/Results: Unlike general-purpose models (e.g., Roofline), our approach significantly improves accuracy and interpretability in atomic-operation bottleneck identification. Experiments demonstrate its ability to pinpoint the root cause—atomic-unit bottleneck migration—behind up to 30% performance disparity between two similar histogram kernels. The model achieves high precision and practical utility, filling a critical gap in existing GPU performance analysis tools regarding fine-grained atomic operation modeling.
📝 Abstract
Performance analysis is critical for GPU programs with data-dependent behavior, but models like Roofline are not very useful for them and interpreting raw performance counters is tedious. In this work, we present an analytical model for shared memory atomics (emph{fetch-and-op} and emph{compare-and-swap} instructions on NVIDIA Volta and Ampere GPU) that allows users to immediately determine if shared memory atomic operations are a bottleneck for a program's execution. Our model is based on modeling the architecture as a single-server queuing model whose inputs are performance counters. It captures load-dependent behavior such as pipelining, parallelism, and different access patterns. We embody this model in a tool that uses CUDA hardware counters as parameters to predict the utilization of the shared-memory atomic unit. To the best of our knowledge, no existing profiling tool or model provides this capability for shared-memory atomic operations. We used the model to compare two histogram kernels that use shared-memory atomics. Although nearly identical, their performance can be different by up to 30%. Our tool correctly identifies a bottleneck shift from shared-memory atomic unit as the cause of this discrepancy.