• 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