Automating CUDA Synchronization via Program Transformation
Automating CUDA Synchronization via Program Transformation
复制标题
DOI:
10.1109/ase.2019.00075
复制
发表时间:
2019-11
期刊:
影响因子:
--
通讯作者:
Mingyuan Wu;Lingming Zhang;Cong Liu;Shin Hwei Tan;Yuqun Zhang
中科院分区:
文献类型:
--
作者:
Mingyuan Wu;Lingming Zhang;Cong Liu;Shin Hwei Tan;Yuqun Zhang
While CUDA has been the most popular parallel computing platform and programming model for general purpose GPU computing, CUDA synchronization undergoes significant challenges for GPU programmers due to its intricate parallel computing mechanism and coding practices. In this paper, we propose AuCS, the first general framework to automate synchronization for CUDA kernel functions. AuCS transforms the original LLVM-level CUDA program control flow graph in a semantic-preserving manner for exploring the possible barrier function locations. Accordingly, AuCS develops mechanisms to correctly place barrier functions for automating synchronization in multiple erroneous (challenging-to-be-detected) synchronization scenarios, including data race, barrier divergence, and redundant barrier functions. To evaluate the effectiveness and efficiency of AuCS, we conduct an extensive set of experiments and the results demonstrate that AuCS can automate 20 out of 24 erroneous synchronization scenarios.