Abstract
We present a preliminary automated verifier based on mechanical decision procedures which is able to prove functional correctness of CUDA programs and guarantee to detect bugs such as race conditions. We also employ a symbolic partial order reduction (POR) technique to mitigate the interleaving explosion problem.
- M. Boyer, K. Skadron and W.Weimer. Automated Dynamic Analysis of CUDA Programs. http://www.cs.virginia.edu/~mwb7w/cuda/.Google Scholar
- CUDA Zone. http://www.nvidia.com/object/cuda home.html.Google Scholar
- Yices: An SMT Solver. http://yices.csl.sri.com.Google Scholar
- The ROSE Compiler. http://www.rosecompiler.org/.Google Scholar
- R. Lublinerman and S. Tripakis, Checking Equivalence of SPMD Programs Using Non-Interference. http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-42.html.Google Scholar
- Bounded Model Checking for ANSI-C. http://www.cprover.org/cbmc/.Google Scholar
- I. Rabinovitz and O. Grumberg. Bounded Model Checking of Concurrent Programs. CAV, pp. 82--97, 2005. Google Scholar
Digital Library
Index Terms
A symbolic verifier for CUDA programs
Recommendations
A symbolic verifier for CUDA programs
PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingWe present a preliminary automated verifier based on mechanical decision procedures which is able to prove functional correctness of CUDA programs and guarantee to detect bugs such as race conditions. We also employ a symbolic partial order reduction (...
Parameterized Verification of GPU Kernel Programs
IPDPSW '12: Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD ForumWe present an automated symbolic verifier for checking the functional correctness of GPGPU kernels parametrically, for an arbitrary number of threads. Our tool checks the functional equivalence of a kernel and its optimized versions, helping debug ...
ESBMC-GPU A context-bounded model checking tool to verify CUDA programs
The Compute Unified Device Architecture (CUDA) is a programming model used for exploring the advantages of graphics processing unit (GPU) devices, through parallelization and specialized functions and features. Nonetheless, as in other development ...







Comments