GMRace: Detecting Data Races in GPU Programs via a Low-Overhead Scheme

IEEE Transactions on Parallel and Distributed Systems(2014)

引用 44|浏览0
暂无评分
摘要
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.
更多
查看译文
关键词
runtime data,gpu programs,high performance,scheduling,gpus memory hierarchy,gpu,multithreaded environment,underlying gpus,graphics processing units,gpu programming,dynamic checker,data race,multi-threading,cuda,low-overhead scheme,detecting data races,need tool,parallel languages,information analysis,gmrace,static analysis,gpu program,concurrency,program reliability,program diagnostics,multithreading,data race detection,parallel language,runtime data access,program verification,opencl,thread scheduling,kernel,instruction sets,synchronization,multi threading
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要