Interleaving and lock-step semantics for analysis and verification of GPU kernels. We study semantics of GPU kernels -- the parallel programs that run on graphics processing units (GPUs). We provide a novel lock-step execution semantics for GPU kernels represented by arbitrary reducible control flow graphs and compare this semantics with a traditional interleaving semantics. We show for terminating kernels that either both semantics compute identical results or both behave erroneously.par The result induces a method that allows GPU kernels with arbitrary reducible control flow graphs to be verified via transformation to a sequential program that employs predicated execution. We implemented this method in the GPUVerify tool and experimentally evaluated it by comparing the tool with the previous version of the tool based on a similar method for structured programs, i.e., where control is organised using if and while statements. The evaluation was based on a set of 163 open source and commercial GPU kernels. Among these kernels, 42 exhibit unstructured control flow which our novel method can handle fully automatically, but the previous method could not. Overall the generality of the new method comes at a modest price: Verification across our benchmark set was 2.25 times slower overall; however, the median slow down across all kernels was 0.77, indicating that our novel technique yielded faster analysis in many cases.
Keywords for this software
References in zbMATH (referenced in 6 articles , 1 standard article )
Showing results 1 to 6 of 6.
- Kojima, Kensuke; Igarashi, Atsushi: A Hoare logic for GPU kernels (2017)
- Grégoire, Thomas; Chlipala, Adam: Mostly automated formal verification of loop dependencies with applications to distributed stencil algorithms (2016)
- Chiang, Wei-Fan; Gopalakrishnan, Ganesh; Rakamarić, Zvonimir: Unsafe floating-point to unsigned integer casting check for GPU programs (2015) ioport
- Amighi, Afshin; Blom, Stefan; Darabi, Saeed; Huisman, Marieke; Mostowski, Wojciech; Zaharieva-Stojanovski, Marina: Verification of concurrent systems with VerCors (2014)
- Chong, Nathan; Donaldson, Alastair F.; Ketema, Jeroen: A sound and complete abstraction for reasoning about parallel prefix sums (2014)
- Collingbourne, Peter; Donaldson, Alastair F.; Ketema, Jeroen; Qadeer, Shaz: Interleaving and lock-step semantics for analysis and verification of GPU kernels (2013)