Kernel Tuner: A search-optimizing GPU code auto-tuner

A very common problem in GPU programming is that some combination of thread block dimensions and other code optimization parameters, like tiling or unrolling factors, results in dramatically better performance than other kernel configurations. To obtain highly-efficient kernels it is often required...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Future generation computer systems Ročník 90; s. 347 - 358
Hlavní autor: van Werkhoven, Ben
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier B.V 01.01.2019
Témata:
ISSN:0167-739X, 1872-7115
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:A very common problem in GPU programming is that some combination of thread block dimensions and other code optimization parameters, like tiling or unrolling factors, results in dramatically better performance than other kernel configurations. To obtain highly-efficient kernels it is often required to search vast and discontinuous search spaces that consist of all possible combinations of values for all tunable parameters. This paper presents Kernel Tuner, an easy-to-use tool for testing and auto-tuning OpenCL, CUDA, and C kernels with support for many search optimization algorithms that accelerate the tuning process. This paper introduces the application of many new solvers and global optimization algorithms for auto-tuning GPU applications. We demonstrate that Kernel Tuner can be used in a wide range of application scenarios and drastically decreases the time spent tuning, e.g. tuning a GEMM kernel on AMD Vega Frontier Edition 71.2x faster than brute force search. •Introduces and evaluates optimization algorithms for auto-tuning GPU applications.•Presents Kernel Tuner, an easy-to-use tool for testing and auto-tuning GPU kernels.•Demonstrates effectiveness of Basin Hopping to speedup the auto-tuning of GPU kernels.
ISSN:0167-739X
1872-7115
DOI:10.1016/j.future.2018.08.004