Exploiting GPU Hardware Saturation for Fast Compiler Optimization

Exploiting GPU Hardware Saturation for Fast Compiler Optimization
复制标题

DOI:
10.1145/2588768.2576791
复制
发表时间:
2014-03
期刊:
Proceedings of Workshop on General Purpose Processing Using GPUs
影响因子:
--
通讯作者:
A. Magni;Christophe Dubach;M. O’Boyle
A. Magni;Christophe Dubach;M. O’Boyle
中科院分区:
其他
文献类型:
--
作者:
A. Magni;Christophe Dubach;M. O’Boyle

文献摘要

被引文献

相似文献

图形处理单元(GPU)是能够为通用计算提供高性能的高效设备。实现其全部性能潜力通常需要大量的编译器调优。这个过程是特别昂贵的,因为它必须为每个目标程序和平台重复。在本文中,我们研究了GPU硬件资源在多种输入大小和编译器选项中的利用率。在这种情况下,我们介绍了硬件饱和的概念。当应用程序使用足够大的线程来执行以充分利用可用的硬件资源时,达到饱和。我们给出了硬件饱和的实验证据,并使用16个OpenCL内核从Nvidia和AMD的3个GPU上描述其属性。我们表明,饱和的GPU的输入大小显示性能稳定的编译器转换。使用线程粗化转换作为一个例子,我们表明,编译器设置保持其相对性能在饱和区域内的输入大小。利用这些硬件和软件属性,我们提出了一种技术,以确定在饱和区的下限输入大小,我们称之为最小饱和点(MSP)。通过对MSP输入大小进行迭代编译,我们得到的结果有效地适用于大得多的输入问题,平均减少了一个数量级的调整开销。
Graphics Processing Units (GPUs) are efficient devices capable of delivering high performance for general purpose computation. Realizing their full performance potential often requires extensive compiler tuning. This process is particularly expensive since it has to be repeated for each target program and platform. In this paper we study the utilization of GPU hardware resources across multiple input sizes and compiler options. In this context we introduce the notion of hardware saturation. Saturation is reached when an application is executed with a number of threads large enough to fully utilize the available hardware resources. We give experimental evidence of hardware saturation and describe its properties using 16 OpenCL kernels on 3 GPUs from Nvidia and AMD. We show that input sizes that saturates the GPU show performance stability across compiler transformations. Using the thread-coarsening transformation as an example, we show that compiler settings maintain their relative performance across input sizes within the saturation region. Leveraging these hardware and software properties we propose a technique to identify the input size at the lower bound of the saturation zone, we call it Minimum Saturation Point (MSP). By performing iterative compilation on the MSP input size we obtain results effectively applicable for much large input problems reducing the overhead of tuning by an order of magnitude on average.