论文标题

GPUREPAIR:GPU内核的自动维修

GPURepair: Automated Repair of GPU Kernels

论文作者

Joshi, Saurabh, Muduganti, Gautam

论文摘要

本文介绍了一种工具,用于修复由于数据竞赛和屏障差异而用CUDA或OPENCL编写的GPU内核中的错误。我们对先前工作的新颖扩展也可以消除被认为不必要的正确性的障碍。我们在称为GPUREPAIR的工具中实现了这些想法,该工具将GPUVERIFY用作GPU内核的验证。我们还扩展了GPUVERIFY以支持CUDA合作组,从而使GPUREPAIR可以对CUDA内核进行块间同步。据我们所知,GPUREPAIR是唯一可以针对CUDA和OPENCL内核的障碍物内数据竞赛和障碍差异错误的唯一工具,也是唯一修复CUDA内核间块数据竞赛的工具。我们对约750个内核进行了广泛的实验,并与先前的工作进行了比较。我们通过固定更多内核的能力以及其去除冗余障碍和处理块间数据竞赛的独特能力来证明GPUREPAIR的优势。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源