The Community for Technology Leaders
Green Image
Issue No. 01 - Jan. (2014 vol. 25)
ISSN: 1045-9219
pp: 104-115
Mai Zheng , Dreese Labs., Ohio State Univ., Columbus, OH, USA
Vignesh T. Ravi , AMD, Austin, TX, USA
Feng Qin , Dreese Labs., Ohio State Univ., Columbus, OH, USA
Gagan Agrawal , Dreese Labs., Ohio State Univ., Columbus, OH, USA
ABSTRACT
In recent years, GPUs have emerged as an extremely cost-effective means for achieving high performance. While languages like CUDA and OpenCL have eased GPU programming for nongraphical applications, they are still explicitly parallel languages. All parallel programmers, particularly the novices, need tools that can help ensuring the correctness of their programs. Like any multithreaded environment, data races on GPUs can severely affect the program reliability. In this paper, we propose GMRace, a new mechanism for detecting races in GPU programs. GMRace combines static analysis with a carefully designed dynamic checker for logging and analyzing information at runtime. Our design utilizes GPUs memory hierarchy to log runtime data accesses efficiently. To improve the performance, GMRace leverages static analysis to reduce the number of statements that need to be instrumented. Additionally, by exploiting the knowledge of thread scheduling and the execution model in the underlying GPUs, GMRace can accurately detect data races with no false positives reported. Our experimental results show that comparing to previous approaches, GMRace is more effective in detecting races in the evaluated cases, and incurs much less runtime and space overhead.
INDEX TERMS
Instruction sets, Graphics processing units, Synchronization, Runtime, Kernel, Instruments, Message systems,multithreading, GPU, CUDA, data race, concurrency
CITATION
Mai Zheng, Vignesh T. Ravi, Feng Qin, Gagan Agrawal, "GMRace: Detecting Data Races in GPU Programs via a Low-Overhead Scheme", IEEE Transactions on Parallel & Distributed Systems, vol. 25, no. , pp. 104-115, Jan. 2014, doi:10.1109/TPDS.2013.44
250 ms
(Ver )