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 identify the root causes of erroneous weak effects, and automatically suggests how to insert fences that harden the 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.
Wed 15 JunDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00 | Testing & DebuggingResearch Papers at Grand Ballroom Santa Ynez Chair(s): Benjamin Zorn Microsoft Research | ||
13:30 30mTalk | Coverage-Directed Differential Testing of JVM Implementations Research Papers Yuting Chen Shanghai Jiao Tong University, Ting Su East China Normal University, Chengnian Sun University of California at Davis, USA, Zhendong Su University of California, Davis, Jianjun Zhao Shanghai Jiao Tong University Media Attached | ||
14:00 30mTalk | Exposing Errors Related to Weak Memory in GPU Applications Research Papers Pre-print Media Attached | ||
14:30 30mTalk | Lightweight Computation Tree Tracing for Lazy Functional Languages Research Papers Media Attached |