127
IRUS Total
Downloads
  Altmetric

The design and implementation of a verification technique for GPU Kernels

File Description SizeFormat 
paper.pdfAccepted version2.23 MBAdobe PDFView/Open
Title: The design and implementation of a verification technique for GPU Kernels
Authors: Betts, A
Chong, N
Donaldson, AF
Ketema, J
Qadeer, S
Thomson, P
Wickerson, J
Item Type: Journal Article
Abstract: We present a technique for the formal verification of GPU kernels, addressing two classes of correctness properties: data races and barrier divergence. Our approach is founded on a novel formal operational semantics for GPU kernels termed <i>synchronous, delayed visibility (SDV)</i> semantics, which captures the execution of a GPU kernel by multiple groups of threads. The SDV semantics provides operational definitions for barrier divergence and for both inter- and intra-group data races. We build on the semantics to develop a method for reducing the task of verifying a massively parallel GPU kernel to that of verifying a sequential program. This completely avoids the need to reason about thread interleavings, and allows existing techniques for sequential program verification to be leveraged. We describe an efficient encoding of data race detection and propose a method for automatically inferring the loop invariants that are required for verification. We have implemented these techniques as a practical verification tool, GPUVerify, that can be applied directly to OpenCL and CUDA source code. We evaluate GPUVerify with respect to a set of 162 kernels drawn from public and commercial sources. Our evaluation demonstrates that GPUVerify is capable of efficient, automatic verification of a large number of real-world kernels.
Issue Date: May-2015
Date of Acceptance: 1-Mar-2015
URI: http://hdl.handle.net/10044/1/32067
DOI: 10.1145/2743017
ISSN: 1558-4593
Publisher: Association for Computing Machinery (ACM)
Start Page: 1
End Page: 49
Journal / Book Title: ACM Transactions on Programming Languages and Systems
Volume: 37
Issue: 3
Copyright Statement: © ACM, 2015. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM Transactions on Programming Languages and Systems, {VOL# 37, ISS# 3, (18 June 2015)} https://dx.doi.org/10.1145/2743017
Sponsor/Funder: Commission of the European Communities
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (EPSRC)
Funder's Grant Number: 287767
EP/G051100/2
EP/K011499/1
EP/I006761/1
Keywords: Science & Technology
Technology
Computer Science, Software Engineering
Computer Science
Theory
Verification
GPUs
concurrency
data races
barrier synchronization
AUTOMATIC-ANALYSIS
ABSTRACTION
Science & Technology
Technology
Computer Science, Software Engineering
Computer Science
Theory
Verification
GPUs
concurrency
data races
barrier synchronization
PREDICATE ABSTRACTION
AUTOMATIC-ANALYSIS
MODEL CHECKING
INVARIANTS
PROGRAMS
VERIFIER
Software Engineering
0803 Computer Software
0806 Information Systems
Publication Status: Published
Article Number: 10
Online Publication Date: 2015-05
Appears in Collections:Computing
Electrical and Electronic Engineering
Faculty of Engineering