Title :
CuMAPz: A tool to analyze memory access patterns in CUDA
Author :
Kim, Yooseong ; Shrivastava, Aviral
Author_Institution :
Compiler & Microarchitecture Lab., Arizona State Univ., Tempe, AZ, USA
Abstract :
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.
Keywords :
computer graphic equipment; coprocessors; parallel architectures; parallel programming; storage management; CUDA; CUDA programming model; CuMAPz; GPGPU; GPU; branch divergence; channel skew; data reuse; global memory access coalescing; graphics processing units; memory access patterns; memory behavior; memory effects; shared memory bank conflict; source code; Benchmark testing; Channel estimation; Correlation; Estimation; Graphics processing unit; Instruction sets; Kernel; Analytical Model; CUDA; GPGPU; Memory access pattern; Performance Estimation;
Conference_Titel :
Design Automation Conference (DAC), 2011 48th ACM/EDAC/IEEE
Conference_Location :
New York, NY
Print_ISBN :
978-1-4503-0636-2