LD: Low-Overhead GPU Race Detection Without Access Monitoring

LD: Low-Overhead GPU Race Detection Without Access Monitoring
复制标题

LD:无需访问监控的低开销 GPU 竞争检测

DOI:
10.1145/3046678
复制
发表时间:
2017
影响因子:
1.6
通讯作者:
Ding, Chen
Ding, Chen
中科院分区:
计算机科学3区
文献类型:
--
作者:
Li, Pengcheng;Hu, Xiaoyu;Chen, Dong;Brock, Jacob;Luo, Hao;Zhang, Eddy Z.;Ding, Chen

文献摘要

相似文献

数据竞争检测已经成为GPU编程中的一个重要问题。针对以往设计的CPU竞争检测工具主要是任务并行的问题,特别是在监控GPU程序经常使用的数千个线程时,由于访问插装,导致GPU开销较大,提出了一种针对GPU架构设计和优化的新型数据并行解决方案。它包括编译器支持和一组运行时技术。它使用基于值的检查,检测以前工作中报告的竞争,发现新的竞争,并支持无竞争的确定性GPU执行。更重要的是,竞争检查是大规模数据并行的,不会引入发散分支或原子同步。对于超过一半的测试,它的速度低于5倍,平均为10倍,比NVIDIA的Cuda-Memcheck工具和使用细粒度Access工具的方法高出一个数量级。
Data race detection has become an important problem in GPU programming. Previous designs of CPU race-checking tools are mainly task parallel and incur high overhead on GPUs due to access instrumentation, especially when monitoring many thousands of threads routinely used by GPU programs.This article presents a novel data-parallel solution designed and optimized for the GPU architecture. It includes compiler support and a set of runtime techniques. It uses value-based checking, which detects the races reported in previous work, finds new races, and supports race-free deterministic GPU execution. More important, race checking is massively data parallel and does not introduce divergent branching or atomic synchronization. Its slowdown is less than 5 × for over half of the tests and 10 × on average, which is orders of magnitude more efficient than the cuda-memcheck tool by Nvidia and the methods that use fine-grained access instrumentation.