DocumentCode
60050
Title
GMRace: Detecting Data Races in GPU Programs via a Low-Overhead Scheme
Author
Mai Zheng ; Ravi, Vignesh T. ; Feng Qin ; Agrawal, Gagan
Author_Institution
Dreese Labs., Ohio State Univ., Columbus, OH, USA
Volume
25
Issue
1
fYear
2014
fDate
Jan. 2014
Firstpage
104
Lastpage
115
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.
Keywords
graphics processing units; information analysis; multi-threading; program diagnostics; program verification; scheduling; CUDA; GMRace; GPU programming; OpenCL; data race detection; dynamic checker; information analysis; low-overhead scheme; multithreaded environment; parallel languages; program reliability; runtime data access; static analysis; thread scheduling; Graphics processing units; Instruction sets; Instruments; Kernel; Message systems; Runtime; Synchronization; CUDA; GPU; concurrency; data race; multithreading;
fLanguage
English
Journal_Title
Parallel and Distributed Systems, IEEE Transactions on
Publisher
ieee
ISSN
1045-9219
Type
jour
DOI
10.1109/TPDS.2013.44
Filename
6464258
Link To Document