D 2017

Autotuning of OpenCL Kernels with Global Optimizations

FILIPOVIČ, Jiří, Filip PETROVIČ a Siegfried BENKNER

Základní údaje

Originální název

Autotuning of OpenCL Kernels with Global Optimizations

Název česky

Autotuning OpenCL kernelů s globálními optimalizacemi

Autoři

FILIPOVIČ, Jiří (203 Česká republika, garant, domácí), Filip PETROVIČ (703 Slovensko, domácí) a Siegfried BENKNER (40 Rakousko)

Vydání

Portland (USA), 1st Workshop on Autotuning and Adaptivity Approaches for Energy Efficient HPC Systems (ANDARE'2017), od s. nestránkováno, 6 s. 2017

Nakladatel

ACM

Další údaje

Jazyk

angličtina

Typ výsledku

Stať ve sborníku

Obor

10201 Computer sciences, information science, bioinformatics

Stát vydavatele

Spojené státy

Utajení

není předmětem státního či obchodního tajemství

Forma vydání

elektronická verze "online"

Odkazy

Kód RIV

RIV/00216224:14610/17:00098442

Organizační jednotka

Ústav výpočetní techniky

ISBN

978-1-4503-5363-2

Klíčová slova česky

autotuning; OpenCL; CUDA; globální optimalizace

Klíčová slova anglicky

autotuning; OpenCL; CUDA; global optimization

Štítky

Příznaky

Mezinárodní význam, Recenzováno
Změněno: 5. 4. 2018 17:51, doc. RNDr. Jiří Filipovič, Ph.D.

Anotace

V originále

Autotuning is an important method for automatically exploring code optimizations. It may target low-level code optimizations, such as memory blocking, loop unrolling or memory prefetching, as well as high-level optimizations, such as placement of computation kernels on proper hardware devices, optimizing memory transfers between nodes or between accelerators and main memory. In this paper, we introduce an autotuning method, which extends state-of-the-art low-level tuning of OpenCL or CUDA kernels towards more complex optimizations. More precisely, we introduce a Kernel Tuning Toolkit (KTT), which implements inter-kernel global optimizations, allowing to tune parameters affecting multiple kernels or also the host code. We demonstrate on practical examples, that with global kernel optimizations we are able to explore tuning options that are not possible if kernels are tuned separately. Moreover, our tuning strategies can take into account numerical accuracy across multiple kernel invocations and search for implementations within specific numerical error bounds.

Česky

Autotuning je důležitá metoda pro automatické prozkoumávání optimalizací kódu. Může zahrnovat nízkoúrovňové optimalizace kódu, jako je memory blocking, unrolling smyček či prefetching paměti, stejně jako vysokoúrovňové optimalizace, jako umísťování výpočetních kernelů na vhodné hardwareové zařízení či optimalizaci paměťových přenosů mezi uzly, nebo akcelerátory a hlavní pamětí. V tomto článku předstacujeme metodu pro autotuning, která rozšiřuje stávající metody nízkoúrovňového autotuningu OpenCL či CUDA kernelů směrem ke komplexnějším optimalizacem. Konkrétně představujeme Kernel Tuning Tool (KTT), který implementuje mezi-kernelové globální optimalizace, což umožňuje tuning parametrů ovlivňujících více kernelů či také host kód. Na praktických příkladech demonstrujeme, jak pomocí globální optimalizace dokážeme implementovat parametry tuningu, které jsou neaplikovatelné, pokud tunink probíhá pro jednotlivé kernely separátně. Naše strategie tuningu umožňuje navíc brát v úvahu numerickou přesnost kompozice více kernelů a vyhledávat implementace pracující v rámci specifikované hranice numerické chyby.

Návaznosti

EF16_013/0001802, projekt VaV
Název: CERIT Scientific Cloud