Search papers, labs, and topics across Lattice.
This paper introduces Host-Guided Race Detection (HGRD), a static analysis technique that leverages semantic information from CPU host code to improve the accuracy of data race detection in GPU kernels. By analyzing both CPU and GPU code, HGRD reduces false positives compared to existing static analysis tools and avoids missing races that dynamic analysis tools often overlook. Experiments show HGRD detects all true races while generating no false alarms, outperforming state-of-the-art dynamic and static techniques.
Existing GPU race detectors cry wolf too often or miss the real threats; HGRD uses CPU context to shut them up and catch the bad guys.
Data races in GPU programs pose a threat to the reliability of GPU-accelerated software stacks. Prior works proposed various dynamic (runtime) and static (compile-time) techniques to detect races in GPU programs. However, dynamic techniques often miss critical races, as they require the races to manifest during testing. While static ones can catch such races, they often generate numerous false alarms by conservatively assuming values of variables/parameters that cannot ever occur during any execution of the program. We make a key observation that the host (CPU) code that launches GPU kernels contains crucial semantic information about the values that the GPU kernel's parameters can take during execution. Harnessing this hitherto overlooked information helps accurately detect data races in GPU kernel code. We create HGRD, a new state-of-the-art static analysis technique that performs a holistic analysis of both CPU and GPU code to accurately detect a broad set of true races while minimizing false alarms. While SOTA dynamic techniques, such as iGUARD, miss many true races, HGRD misses none. On the other hand, static techniques such as GPUVerify and FaialAA raise tens of false alarms, where HGRD raises none.