PofoliaShared via Pofolia

· 2012

Auto-tuning a high-level language targeted to GPU codes

Scott Grauer-Gray, Lifan Xu, Robert Searles, Sudhee Ayalasomayajula et al.

Short summary

Auto-tuning significantly boosts GPU kernel performance generated by the HMPP high-level language, matching or exceeding hand-coded CUDA/OpenCL.

AI-generated from the title and abstract; the full text is not read.

Key points

  • Auto-tuning improves performance for GPU kernels written in the high-level HMPP language.
  • The auto-tuning process explored loop permutation, loop unrolling, tiling, and parallelization strategies.
  • Auto-tuned HMPP implementations were significantly faster than default HMPP versions.
  • Performance of auto-tuned HMPP code met or exceeded that of manually coded CUDA/OpenCL implementations.

AI-generated from the title and abstract; the full text is not read.

Abstract

Determining the best set of optimizations to apply to a kernel to be executed on the graphics processing unit (GPU) is a challenging problem. There are large sets of possible optimization configurations that can be applied, and many applications have multiple kernels. Each kernel may require a specific configuration to achieve the best performance, and moving an application to new hardware often requires a new optimization configuration for each kernel. In this work, we apply optimizations to GPU code using HMPP, a high-level directive-based language and source-to-source compiler that can generate CUDA / OpenCL code. However, programming with high-level languages may mean a loss of performance compared to using low-level languages. Our work shows that it is possible to improve the performance of a high-level language by using auto-tuning. We perform auto-tuning on a large optimization space on GPU kernels, focusing on loop permutation, loop unrolling, tiling, and specifying which loop(s) to parallelize, and show results on convolution kernels, codes in the PolyBench suite, and an implementation of belief propagation for stereo vision. The results show that our auto-tuned HMPP-generated implementations are significantly faster than the default HMPP implementation and can meet or exceed the performance of manually coded CUDA / OpenCL implementations.

The authors' abstract, as published at the source., 2012 · DOI ↗

TakeawaysPremium
Ask the paperFree account

Continue with a free account

Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.

Continue free on the web

Sign in with Google or Apple; no card needed. You come back to this paper.

On your phone:

Field: Hardware and Architecture

Hardware and ArchitectureComputer Science