Automatic optimization of thread-coarsening for graphics processors
Automatic optimization of thread-coarsening for graphics processors
复制标题
DOI:
10.1145/2628071.2628087
复制
发表时间:
2014-08
期刊:
影响因子:
--
通讯作者:
A. Magni;Christophe Dubach;M. O’Boyle
中科院分区:
文献类型:
--
作者:
A. Magni;Christophe Dubach;M. O’Boyle
OpenCL has been designed to achieve functional portability across multi-core devices from different vendors. However, the lack of a single cross-target optimizing compiler severely limits performance portability of OpenCL programs. Programmers need to manually tune applications for each specific device, preventing effective portability. We target a compiler transformation specific for data-parallel languages: thread-coarsening and show it can improve performance across different GPU devices. We then address the problem of selecting the best value for the coarsening factor parameter, i.e., deciding how many threads to merge together. We experimentally show that this is a hard problem to solve: good configurations are difficult to find and naive coarsening in fact leads to substantial slowdowns. We propose a solution based on a machine-learning model that predicts the best coarsening factor using kernel-function static features. The model automatically specializes to the different architectures considered. We evaluate our approach on 17 benchmarks on four devices: two Nvidia GPUs and two different generations of AMD GPUs. Using our technique, we achieve speedups between 1.11× and 1.33× on average.