NASA Formal Methods
NASA Formal Methods
复制标题
NASA 正式方法
DOI:
10.1007/978-3-319-06200-6_18
复制
发表时间:
2014
期刊:
影响因子:
--
通讯作者:
Bardsley E
中科院分区:
文献类型:
--
作者:
Bardsley E
We describe the design and implementation of methods to support reasoning about data races in GPU kernels where constructs other than the standard barrier primitive are used for synchronization. At one extreme we consider kernels that exploit implicit, coarse-grained synchronization between threads in the samewarp, a feature provided by many architectures. At the other extreme we consider kernels that reduce or avoid barrier synchronization through the use ofatomicoperations. We discuss design decisions associated with providing support for warps and atomics in GPUVerify, a formal verification tool for OpenCL and CUDA kernels. We evaluate the practical impact of these design decisions using a large set of benchmarks, showing that warps can be supported in a scalable manner, that a coarse abstraction suffices for efficient reasoning about most practical uses of atomic operations, and that a novel, refined abstraction captures an important design pattern where atomic operations are used to compute unique array indices. Our evaluation revealed two previously unknown bugs in publicly available benchmark suites.