Autotuning GPU Kernels via Static and Predictive Analysis

01/30/2017
by   Robert V. Lim, et al.
0

Optimizing the performance of GPU kernels is challenging for both human programmers and code generators. For example, CUDA programmers must set thread and block parameters for a kernel, but might not have the intuition to make a good choice. Similarly, compilers can generate working code, but may miss tuning opportunities by not targeting GPU models or performing code transformations. Although empirical autotuning addresses some of these challenges, it requires extensive experimentation and search for optimal code variants. This research presents an approach for tuning CUDA kernels based on static analysis that considers fine-grained code structure and the specific GPU architecture features. Notably, our approach does not require any program runs in order to discover near-optimal parameter settings. We demonstrate the applicability of our approach in enabling code autotuners such as Orio to produce competitive code variants comparable with empirical-based methods, without the high cost of experiments.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/10/2021

Searching CUDA code autotuning spaces with hardware performance counters: data from benchmarks running on various GPU architectures

We have developed several autotuning benchmarks in CUDA that take into a...
research
10/04/2022

Benchmarking optimization algorithms for auto-tuning GPU kernels

Recent years have witnessed phenomenal growth in the application, and ca...
research
03/22/2023

Kernel Launcher: C++ Library for Optimal-Performance Portable CUDA Applications

Graphic Processing Units (GPUs) have become ubiquitous in scientific com...
research
09/09/2020

GPA: A GPU Performance Advisor Based on Instruction Sampling

Developing efficient GPU kernels can be difficult because of the complex...
research
04/29/2022

Analytical Performance Estimation during Code Generation on Modern GPUs

Automatic code generation is frequently used to create implementations o...
research
11/17/2020

GPURepair: Automated Repair of GPU Kernels

This paper presents a tool for repairing errors in GPU kernels written i...
research
01/08/2019

A Journey Among Java Neutral Program Variants

Neutral program variants are functionally similar to an original program...

Please sign up or login with your details

Forgot password? Click here to reset