The difficulties posed by GPGPU programming and the need to increase productivity have guided research towards directive-based high-level programs for accelerators. This effort has led to the definition of the OpenACC industry standard. It significantly simplifies writing code for graph- ics engines leaving the programmer the opportunity to tune the application for the target hardware and input. In this paper we address the problem of choosing the best mapping of sequential OpenACC loops to the parallel thread- space for a given program and input size. We show that auto-tuning on mapping parameters can improve performance by up to 4.8x over the default chosen by a state-of-the- art compiler. To reduce the overhead of auto-tuning we introduce a search technique that exploits similarities in be- haviour across inputs using a nearest neighbour approach. This dramatically reduces the search for a good mapping (by 97% compared to random search). Finally we propose a heuristic for stopping the focused search which, averaged across 12 benchmarks and 30 input sizes each, achieves a speedup over the default of 1.26x with only 8 sampling runs.
|Title of host publication||ACM International Conference Proceeding Series|
|Number of pages||10|
|Publication status||Published - 2013|
|Event||6th Workshop on General Purpose Processor Using Graphics Processing Units, GPGPU 2013 - Houston, TX, United States|
Duration: 16 Mar 2013 → 16 Mar 2013
|Conference||6th Workshop on General Purpose Processor Using Graphics Processing Units, GPGPU 2013|
|Period||16/03/13 → 16/03/13|