Input-aware auto-tuning for directive-based GPU programming

Alberto Magni*, Dominik Grewe, Nicholas Johnson

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution


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.

Original languageEnglish
Title of host publicationACM International Conference Proceeding Series
Number of pages10
Publication statusPublished - 2013
Event6th Workshop on General Purpose Processor Using Graphics Processing Units, GPGPU 2013 - Houston, TX, United States
Duration: 16 Mar 201316 Mar 2013


Conference6th Workshop on General Purpose Processor Using Graphics Processing Units, GPGPU 2013
CountryUnited States
CityHouston, TX


  • Autotuning
  • OpenACC


Dive into the research topics of 'Input-aware auto-tuning for directive-based GPU programming'. Together they form a unique fingerprint.

Cite this