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

  • Authors:
  • Alberto Magni;Dominik Grewe;Nick Johnson

  • Affiliations:
  • University of Edinburgh, United Kingdom;University of Edinburgh, United Kingdom;EPCC, University of Edinburgh, United Kingdom

  • Venue:
  • Proceedings of the 6th Workshop on General Purpose Processor Using Graphics Processing Units
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 graphics 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 behaviour 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.