Automating CUDA Synchronization via Program Transformation

Automating CUDA Synchronization via Program Transformation
复制标题

DOI:
10.1109/ase.2019.00075
复制
发表时间:
2019-11
期刊:
2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子:
--
通讯作者:
Mingyuan Wu;Lingming Zhang;Cong Liu;Shin Hwei Tan;Yuqun Zhang
Mingyuan Wu;Lingming Zhang;Cong Liu;Shin Hwei Tan;Yuqun Zhang
中科院分区:
其他
文献类型:
--
作者:
Mingyuan Wu;Lingming Zhang;Cong Liu;Shin Hwei Tan;Yuqun Zhang

文献摘要

被引文献

相似文献

虽然CUDA一直是通用GPU计算最流行的并行计算平台和编程模型,但由于其复杂的并行计算机制和编码实践,CUDA同步对GPU程序员来说面临着重大挑战。在本文中,我们提出了aus,这是第一个实现CUDA内核函数自动同步的通用框架。aus以语义保留的方式对原始llvm级CUDA程序控制流图进行了转换,以探索可能的屏障函数位置。因此,AuCS开发了一些机制,以便在多个错误的(难以检测到的)同步场景中正确放置用于自动同步的屏障函数,包括数据竞争、屏障发散和冗余屏障函数。为了评估aus的有效性和效率,我们进行了大量的实验,结果表明aus可以自动处理24种错误同步场景中的20种。
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.