Formal Semantics of Heterogeneous CUDA-C: A Modular Approach with Applications

Chris Hathhorn
(University of Missouri)
Michela Becchi
(University of Missouri)
William L. Harrison
(University of Missouri)
Adam Procter
(University of Missouri)

We extend an off-the-shelf, executable formal semantics of C (Ellison and Rosu's K Framework semantics) with the core features of CUDA-C. The hybrid CPU/GPU computation model of CUDA-C presents challenges not just for programmers, but also for practitioners of formal methods. Our formal semantics helps expose and clarify these issues. We demonstrate the usefulness of our semantics by generating a tool from it capable of detecting some race conditions and deadlocks in CUDA-C programs. We discuss limitations of our model and argue that its extensibility can easily enable a wider range of verification tasks.

In Franck Cassez, Ralf Huuck, Gerwin Klein and Bastian Schlich: Proceedings Seventh Conference on Systems Software Verification (SSV 2012), Sydney, Australia, 28-30 November 2012, Electronic Proceedings in Theoretical Computer Science 102, pp. 115–124.
Published: 26th November 2012.

ArXived at: https://dx.doi.org/10.4204/EPTCS.102.11 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org