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 Jun (GMT-07:00) Tijuana, Baja California change
|13:30 - 14:00|
Yuting ChenShanghai Jiao Tong University, Ting SuEast China Normal University, Chengnian SunUniversity of California at Davis, USA, Zhendong SuUniversity of California, Davis, Jianjun ZhaoShanghai Jiao Tong UniversityMedia Attached
|14:00 - 14:30|
|Pre-print Media Attached|
|14:30 - 15:00|