SMT‐based context‐bounded model checking for CUDA programs

Phillipe Pereira, Higo Albuquerque, Isabela Da silva, Hendrio Marques, Felipe Monteiro, Ricardo Ferreira, Lucas Cordeiro

Research output: Contribution to journalArticlepeer-review


We present ESBMC‐GPU tool, an extension to the Efficient SMT‐Based Context‐Bounded Model Checker (ESBMC), which is aimed at verifying Graphics Processing Unit (GPU) programs written for the Compute Unified Device Architecture (CUDA) platform. ESBMC‐GPU uses an operational model, that is, an abstract representation of the standard CUDA libraries, which conservatively approximates their semantics, in order to verify CUDA‐based programs. It then explicitly explores the possible interleavings (up to the given context bound), while treats each interleaving itself symbolically. Additionally, ESBMC‐GPU employs the monotonic partial order reduction and the two‐thread analysis to prune the state space exploration. Experimental results show that ESBMC‐GPU can successfully verify 82% of all benchmarks, while keeping lower rates of false results. Going further than previous attempts, ESBMC‐GPU is able to detect more properties violations than other existing GPU verifiers due to its ability to verify errors of the program execution flow and to detect array out‐of‐bounds and data race violations. Copyright © 2016 John Wiley & Sons, Ltd.
Original languageEnglish
Article numbere3934
JournalConcurrency and Computation: Practice and Experience
Issue number22
Early online date2 Aug 2016
Publication statusPublished - 2016


Dive into the research topics of 'SMT‐based context‐bounded model checking for CUDA programs'. Together they form a unique fingerprint.

Cite this