Close

Presentation

Scabbard: LLVM Instrumentation-aided Race Checking in CPU/GPU Unified Memory for AMD GPUs
DescriptionData Races are bugs whose occurrence in shared memory parallel and concurrent systems can cause unexpected outcomes and undermine the integrity of computational results. CPU/GPU systems that use Unified Heterogeneous Memory—for simplified memory sharing between GPUs and CPUs—are highly prone to data races. Scabbard's design is based on instrumenting the CPU/GPU codes by using LLVM's pass-plugin system to instrument the user's code to record writes, reads and synchronizations into trace files during execution, and subsequently performing offline analysis to report races. The main contribution of this paper is in detailing our algorithms, implementation challenges and the learning process faced by newcomers to the LLVM and ROCm/Hip ecosystems to better the learning experience for new LLVM tool-builders in the CPU/GPU space.