2017
Autotuning of OpenCL Kernels with Global Optimizations
FILIPOVIČ, Jiří, Filip PETROVIČ a Siegfried BENKNERZá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.
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 |
|