Title
GPU Concurrency: Weak Behaviours and Programming Assumptions
Abstract
Concurrency is pervasive and perplexing, particularly on graphics processing units (GPUs). Current specifications of languages and hardware are inconclusive; thus programmers often rely on folklore assumptions when writing software. To remedy this state of affairs, we conducted a large empirical study of the concurrent behaviour of deployed GPUs. Armed with litmus tests (i.e. short concurrent programs), we questioned the assumptions in programming guides and vendor documentation about the guarantees provided by hardware. We developed a tool to generate thousands of litmus tests and run them under stressful workloads. We observed a litany of previously elusive weak behaviours, and exposed folklore beliefs about GPU programming---often supported by official tutorials---as false. As a way forward, we propose a model of Nvidia GPU hardware, which correctly models every behaviour witnessed in our experiments. The model is a variant of SPARC Relaxed Memory Order (RMO), structured following the GPU concurrency hierarchy.
Year
DOI
Venue
2015
10.1145/2694344.2694391
ASPLOS
Keywords
Field
DocType
gpu,memory consistency,nvidia ptx,litmus testing,general,test generation,formal model,opencl
Graphics,Programming language,Concurrency,Computer science,Parallel computing,Litmus,Vendor Documentation,Software,Hierarchy,State of affairs,Empirical research
Conference
Volume
Issue
ISSN
43
1
0163-5964
Citations 
PageRank 
References 
48
1.62
25
Authors
8
Name
Order
Citations
PageRank
Jade Alglave160826.53
Mark Batty2883.27
Alastair F. Donaldson366152.35
Ganesh Gopalakrishnan41619130.11
Jeroen Ketema5492.99
Daniel Poetzl6704.04
Tyler Sorensen71099.42
John Wickerson814210.08