GPUDrano: Detecting Uncoalesced Accesses in GPU Programs

GPUDrano: Detecting Uncoalesced Accesses in GPU Programs
复制标题

GPUDrano:检测 GPU 程序中的未合并访问

DOI:
10.1007/978-3-319-63387-9_25
复制
发表时间:
2017
期刊:
Proceedings of the 4th International Workshop on OpenCL
影响因子:
--
通讯作者:
N. Singhania
N. Singhania
中科院分区:
--
文献类型:
--
作者:
R. Alur;Joseph Devietti;O. N. Leija;N. Singhania

文献摘要

参考文献

被引文献

相似文献

在过去的十年中,图形处理单元(GPU)已变得广泛而流行。但是,充分利用GPU所提供的并行计算和内存资源仍然是一个重大挑战。在本文中,我们描述了GPUDRANO:可扩展的静态分析,可检测CUDA程序中不受钙化的全局内存访问。当GPU程序以不良结构的方式访问DRAM,从而增加了延迟和能耗时,就会出现不含水的全局内存访问。我们将GPUDRANO静态分析形式化,并从经验上与动态分析进行比较,以证明大多数程序很少有假阳性。我们在LLVM中实现GPUDRANO,并表明它可以在一千多行代码的GPU程序上运行。 Gpudrano在流行的Rodinia GPU基准套件中发现了143个不透明的静态内存访问中的133个,证明了我们实施的精度。修复这些错误会导致高达25%的实际绩效提高。
Graphics Processing Units (GPUs) have become widespread and popular over the past decade. Fully utilizing the parallel compute and memory resources that GPUs present remains a significant challenge, however. In this paper, we describe GPUDrano: a scalable static analysis that detects uncoalesced global memory accesses in CUDA programs. Uncoalesced global memory accesses arise when a GPU program accesses DRAM in an ill-structured way, increasing latency and energy consumption. We formalize the GPUDrano static analysis and compare it empirically against a dynamic analysis to demonstrate that false positives are rare for most programs. We implement GPUDrano in LLVM and show that it can run on GPU programs of over a thousand lines of code. GPUDrano finds 133 of the 143 uncoalesced static memory accesses in the popular Rodinia GPU benchmark suite, demonstrating the precision of our implementation. Fixing these bugs leads to real performance improvements of up to 25%.
DOI: 10.1145/2743017
发表时间: 2015
影响因子: 1.3
作者:
Betts A
通讯作者: Betts A