Verification of Producer-Consumer Synchronization in GPU Programs
Previous efforts to formally verify code written for GPUs have focused solely on kernels written within the traditional data-parallel GPU programming model. No previous work has considered the higher performance, but more complex, {\em warp-specialized} kernels based on producer-consumer {\em named barriers} available on current hardware. In this work we present the first formal operational semantics for named barriers and define what it means for a warp-specialized kernel to be correct. We give algorithms for verifying the correctness of warp-specialized kernels and prove that they are both sound and complete for the most common class of warp-specialized programs. We also present WEFT, a verification tool for checking warp-specialized code. Using WEFT, we discover several non-trivial bugs in production warp-specialized kernels.
Mon 15 JunDisplayed time zone: Tijuana, Baja California change
14:00 - 15:40 | VerificationResearch Papers at PLDI Main BLUE (Portland 254-255) Chair(s): Zachary Tatlock University of Washington, Seattle | ||
14:00 25mTalk | Mechanized Verification of Fine-grained Concurrent Programs Research Papers Ilya Sergey IMDEA Software Institute, Aleksandar Nanevski IMDEA Software Institute, Anindya Banerjee IMDEA Software Institute Link to publication Media Attached | ||
14:25 25mTalk | Verification of Producer-Consumer Synchronization in GPU Programs Research Papers Media Attached | ||
14:50 25mTalk | Relaxing Safely: Verified On-the-Fly Garbage Collection for x86-TSO Research Papers Peter Gammie NICTA, Tony Hosking Australian National University, Data61, and Purdue University, Kai Engelhardt UNSW and NICTA Link to publication Media Attached | ||
15:15 25mTalk | Verifying Read-Copy-Update in a Logic for Weak Memory Research Papers Joseph Tassarotti Carnegie Mellon University, Derek Dreyer MPI-SWS, Viktor Vafeiadis MPI-SWS, Germany Media Attached |