Back to Search Start Over

GPURepair: Automated Repair of GPU Kernels (Extended Version).

Authors :
Joshi, Saurabh
Muduganti, Gautam
Source :
Sādhanā: Academy Proceedings in Engineering Sciences. Mar2024, Vol. 49 Issue 1, p1-16. 16p.
Publication Year :
2024

Abstract

This paper presents a technique 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 suggest inter-block synchronization for repairing a CUDA kernel if deemed necessary. 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. It is also the only tool that can propose fixes for inter-block data races in 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. We have also enhanced the initial version of GPURepair to support incremental solving during the repair process. This enhancement improves the performance of GPURepair by about 25% for the test suite that we have used. [ABSTRACT FROM AUTHOR]

Subjects

Subjects :
*SYNCHRONIZATION

Details

Language :
English
ISSN :
02562499
Volume :
49
Issue :
1
Database :
Academic Search Index
Journal :
Sādhanā: Academy Proceedings in Engineering Sciences
Publication Type :
Academic Journal
Accession number :
175232022
Full Text :
https://doi.org/10.1007/s12046-023-02291-0