Exposing errors related to weak memory in GPU applications
File(s)paper.pdf (516.06 KB)
Accepted version
Author(s)
Sorensen, T
Donaldson, AF
Type
Conference Paper
Abstract
We present the systematic design of a testing environment that uses stressing and fuzzing to reveal errors in GPU applications that arise due to weak memory effects. We evaluate our approach on seven GPUs spanning three Nvidia architectures, across ten CUDA applications that use fine-grained concurrency. Our results show that applications that rarely or never exhibit errors related to weak memory when executed natively can readily exhibit these errors when executed in our testing environment. Our testing environment also provides a means to help identify the root causes of such errors, and automatically suggests how to insert fences that harden an application against weak memory bugs. To understand the cost of GPU fences, we benchmark applications with fences provided by the hardening strategy as well as a more conservative, sound fencing strategy.
Date Issued
2016-06-02
Date Acceptance
2016-01-20
Citation
Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2016, pp.100-113
ISBN
978-1-4503-4261-2
Publisher
ACM
Start Page
100
End Page
113
Journal / Book Title
Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
Copyright Statement
© ACM 2016. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, http://dx.doi.org/10.1145/2908080.2908114.
Sponsor
GCHQ
Grant Number
N/A
Source
37th ACM SIGPLAN Conference on Programming Language Design and Implementation
Publication Status
Published
Start Date
2016-06-13
Finish Date
2016-06-17
Coverage Spatial
Santa Barbara, California USA