arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2011.08373cs.DCcs.SE
收藏

GPURepair:GPU内核的自动修复

GPURepair: Automated Repair of GPU Kernels

Saurabh Joshi, Gautam Muduganti

摘要:

本文提出了一种工具,用于修复在CUDA或OpenCL编写的GPU内核中由于数据竞争和屏障发散而导致的错误。我们对先前工作的新颖扩展也可以消除被认为是正确性不必要的障碍。我们在我们的工具GPURepair中实现了这些想法,该工具使用GPUVerify作为GPU内核的验证Oracle。我们还扩展了GPUVerify以支持CUDA协作组,允许GPURepair为CUDA内核执行块间同步。据我们所知,GPURepair是唯一可以为CUDA和OpenCL内核提供块内数据竞争和屏障发散错误修复的工具,也是唯一可以修复CUDA内核块间数据竞争的工具。我们进行了广泛的实验,约750内核,并提供了与以前的工作进行比较。我们通过其修复更多内核的能力以及其消除冗余障碍和处理块间数据竞争的独特能力来证明GPU修复的优越性。

英文摘要:

This paper presents a tool for repairing errors in GPU kernels written in CUDA or OpenCL due to data races and barrier divergence. Our novel extension to prior work can also remove barriers that are deemed unnecessary for correctness. We implement these ideas in our tool called GPURepair, which uses GPUVerify as the verification oracle for GPU kernels. We also extend GPUVerify to support CUDA Cooperative Groups, allowing GPURepair to perform inter-block synchronization for CUDA kernels. To the best of our knowledge, GPURepair is the only tool that can propose a fix for intra-block data races and barrier divergence errors for both CUDA and OpenCL kernels and the only tool that fixes inter-block data races for CUDA kernels. We perform extensive experiments on about 750 kernels and provide a comparison with prior work. We demonstrate the superiority of GPURepair through its capability to fix more kernels and its unique ability to remove redundant barriers and handle inter-block data races.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑