2016
DOI: 10.1002/cpe.3934
|View full text |Cite
|
Sign up to set email alerts
|

SMT‐based context‐bounded model checking for CUDA programs

Abstract: 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 cont… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
24
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
6

Relationship

0
6

Authors

Journals

citations
Cited by 20 publications
(24 citation statements)
references
References 32 publications
0
24
0
Order By: Relevance
“…The original idea of performing model checking of real embedded applications, through an environment operational model, has already been done before in the literature and the correctness of such operational model is actually a major issue. Consequently, the usefulness of QtOM relies on the fact that it correctly represents the original Qt libraries.…”
Section: Operational Models For Containersmentioning
confidence: 99%
“…The original idea of performing model checking of real embedded applications, through an environment operational model, has already been done before in the literature and the correctness of such operational model is actually a major issue. Consequently, the usefulness of QtOM relies on the fact that it correctly represents the original Qt libraries.…”
Section: Operational Models For Containersmentioning
confidence: 99%
“…ESBMC was designed to handle multi-threaded software, through the use of an API called POSIX -ISO/IEC 9945 [18]. In order to support the verification of CUDA kernels, COM applies code transformations to kernel calls using ESBMC's intrinsic functions [6]. In particular, thread/block configurations in a CUDA kernel call are used as parameters in such intrinsic functions, which are responsible for checking for preconditions, configuring block and threads dimension, and translating GPU threads to POSIX ones.…”
Section: Cuda Operationalmentioning
confidence: 99%
“…ESBMC models the Pthreads API [12] to support thread synchronization, i.e., mutex locking operations and conditional waiting, and dynamic creation of threads, which makes that representation very similar to the official CUDA scheduler [6], in such a way that our multi-threading model approximates to that of GPU kernels. Therefore, COM is able to use such aspects present in ESBMC, in order to handle variables in different types of memory and also in inter-warp communication.…”
Section: Cuda Operationalmentioning
confidence: 99%
See 2 more Smart Citations