CuMAPz: a tool to analyze memory access patterns in CUDA
Compiler and Microarchitecture Laboratory, Arizona State University, Tempe 85281, USA
Proceedings of the 48th Design Automation Conference, DAC ’11, 2011
@inproceedings{kim2011cumapz,
title={CuMAPz: a tool to analyze memory access patterns in CUDA},
author={Kim, Y. and Shrivastava, A.},
booktitle={Design Automation Conference (DAC), 2011 48th ACM/EDAC/IEEE},
pages={128–133},
year={2011},
organization={IEEE}
}
CUDA programming model provides a simple interface to program on GPUs, but tuning GPGPU applications for high performance is still quite challenging. Programmers need to consider several architectural details, and small changes in source code, especially on memory access pattern, affect performance significantly. This paper presents CuMAPz, a tool to compare the memory performance of a CUDA program. CuMAPz can help programmers explore different ways of using shared and global memories, and optimize their program for memory behavior. CuMAPz models several memory effects, e.g., data reuse, global memory access coalescing, shared memory bank conflict, channel skew, and branch divergence. By using CuMAPz to explore memory access design space, we could improve the performance of our benchmarks by 62% over the naive cases, and 32% over previous approach[8].
September 20, 2011 by hgpu