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, warp-specialized kernels based on producer-consumer 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 warpspecialized 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 warpspecialized programs. We also presentWEFT, a verification tool for checking warp-specialized code. Using WEFT, we discover several non-trivial bugs in production warp-specialized kernels.
CITATION STYLE
Sharma, R., Bauer, M., & Aiken, A. (2015). Verification of producer-consumer synchronization in GPU programs. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (Vol. 2015-June, pp. 88–98). Association for Computing Machinery. https://doi.org/10.1145/2737924.2737962
Mendeley helps you to discover research relevant for your work.