• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations

A sound and complete abstraction for reasoning about parallel prefix sums. In: (2014)

by N Chong, A F Donaldson, J Ketema
Venue:POPL.
Add To MetaCart

Tools

Sorted by:
Results 1 - 5 of 5

The Design and Implementation of a Verification Technique for GPU Kernels

by Adam Betts, NATHAN CHONG, ALASTAIR F. DONALDSON, JEROEN KETEMA, SHAZ QADEER, et al.
"... 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 se-mantics for GPU kernels termed synchronous, delayed visibility (SDV) semantics, which captu ..."
Abstract - Cited by 5 (4 self) - Add to MetaCart
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 se-mantics for GPU kernels termed synchronous, delayed visibility (SDV) semantics, which captures the exe-cution 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 sequen-tial 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 ker-nels 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.

Engineering a Static Verification Tool for GPU Kernels,”

by Ethel Bardsley , Adam Betts , Nathan Chong , Peter Collingbourne , Pantazis Deligiannis , Alastair F Donaldson , Jeroen Ketema , Daniel Liew , Shaz Qadeer - in Proc. of the 26th International Conference on Computer-Aided Verification (CAV’14), , 2014
"... Abstract. We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is tha ..."
Abstract - Cited by 5 (4 self) - Add to MetaCart
Abstract. We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is that this experience report will serve the verification community by helping to inform future tooling efforts.
(Show Context)

Citation Context

...y. In response to the GPU programming paradigm and the problem of data races, a variety of formal and semi-formal methods for finding, or proving absence, of defects in GPU kernels have been proposed =-=[27,8,26,23,28,14,29,10,4,12,5]-=-. Over the last 2.5 years, our contribution to this area has been GPUVerify,1 an open source tool for static verification of race-freedom for OpenCL and CUDA kernels. Our research papers [8,15,11] hav...

Parallel prefix polymorphism permits parallelization, presentation & proof. arXiv preprint arXiv:1410.6449

by Jiahao Chen, Alan Edelman , 2014
"... Polymorphism in programming languages enables code reuse. Here, we show that polymorphism has broad applicability far beyond computations for technical computing: paral-lelism in distributed computing, presentation of visual-izations of runtime data flow, and proofs for formal verifi-cation of corre ..."
Abstract - Cited by 1 (0 self) - Add to MetaCart
Polymorphism in programming languages enables code reuse. Here, we show that polymorphism has broad applicability far beyond computations for technical computing: paral-lelism in distributed computing, presentation of visual-izations of runtime data flow, and proofs for formal verifi-cation of correctness. The ability to reuse a single codebase for all these purposes provides new ways to understand and verify parallel programs.
(Show Context)

Citation Context

...algebraic transformations, will all be correct. However, the algebraic proof of correctness is not constructive and does not lend itself easily to programmatic verification. Second and more recently, =-=[15]-=- proved that the correctness of a kernel can be demonstrated by proving correctness for the interval monoid (Definition 1), which formalizes the notion of indexing the subarrays being accessed over th...

The GPUVerify Method: a Tutorial Overview

by Alastair F. Donaldson , 2014
"... I present a tutorial overview demonstrating the key technique used by GPUVerify, a static verification tool for graphics processing unit (GPU) kernels. The technique is a method for translating a massively parallel GPU kernel into a sequential program such that correctness of the sequential program ..."
Abstract - Add to MetaCart
I present a tutorial overview demonstrating the key technique used by GPUVerify, a static verification tool for graphics processing unit (GPU) kernels. The technique is a method for translating a massively parallel GPU kernel into a sequential program such that correctness of the sequential program implies data race-freedom of the parallel kernel.

Verification of Producer-Consumer Synchronization in GPU Programs

by Rahul Sharma, Michael Bauer, Alex Aiken
"... ns iste nt * Complete * W ell D ocumented*Easyto ..."
Abstract - Add to MetaCart
ns iste nt * Complete * W ell D ocumented*Easyto
(Show Context)

Citation Context

...e integrated into a more general purpose GPU verification framework. There are many other verification tools which have attempted to reason about the synchronization schemes of GPU kernels. GPUVerify =-=[5, 8, 11, 12]-=- is a general-purpose verifier for GPU kernels. In the GPUVerify model, a CTA-wide barrier (e.g. syncthreads) is the only synchronization mechanism. This restriction permits GPUVerify to perform a two...

Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University