iGUARD
- 26 October 2021
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM SIGOPS 28th Symposium on Operating Systems Principles CD-ROM
Abstract
Newer use cases of GPU (Graphics Processing Unit) computing, e.g., graph analytics, look less like traditional bulk-synchronous GPU programs. To cater to the needs of emerging applications with semantically richer and finer grain sharing patterns, GPU vendors have been introducing advanced programming features, e.g., scoped synchronization and independent thread scheduling. While these features can speed up many applications and enable newer use cases, they can also introduce subtle synchronization errors if used incorrectly. We present iGUARD, a runtime software tool to detect races in GPU programs due to incorrect use of such advanced features. A key need for a race detector to be practical is to accurately detect races at reasonable overheads. We thus perform the race detection on the GPU itself without relying on the CPU. The GPU's parallelism helps speed up race detection by 15x over a closely related prior work. Importantly, iGUARD detects newer types of races that were hitherto not possible for any known tool. It detected previously unknown subtle bugs in popular GPU programs, including three in NVIDIA supported commercial libraries. In total, iGUARD detected 57 races in 21 GPU programs, without false positives.Keywords
Funding Information
- VMware
This publication has 27 references indexed in Scilit:
- Race Detection in Two DimensionsPublished by Association for Computing Machinery (ACM) ,2015
- The Design and Implementation of a Verification Technique for GPU KernelsACM Transactions on Programming Languages and Systems, 2015
- GPU ConcurrencyPublished by Association for Computing Machinery (ACM) ,2015
- Engineering a Static Verification Tool for GPU KernelsLecture Notes in Computer Science, 2014
- Parallelizing data race detectionPublished by Association for Computing Machinery (ACM) ,2013
- IFRitPublished by Association for Computing Machinery (ACM) ,2012
- GPUVerifyPublished by Association for Computing Machinery (ACM) ,2012
- GoldilocksPublished by Association for Computing Machinery (ACM) ,2007
- EraserACM Transactions on Computer Systems, 1997
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978