FILIPOVIČ, Jiří, Filip PETROVIČ and Siegfried BENKNER. Autotuning of OpenCL Kernels with Global Optimizations. Online. In 1st Workshop on Autotuning and Adaptivity Approaches for Energy Efficient HPC Systems (ANDARE'2017). Portland (USA): ACM, 2017, p. nestránkováno, 6 pp. ISBN 978-1-4503-5363-2. Available from: https://dx.doi.org/10.1145/3152821.3152877.
Other formats:   BibTeX LaTeX RIS
Basic information
Original name Autotuning of OpenCL Kernels with Global Optimizations
Name in Czech Autotuning OpenCL kernelů s globálními optimalizacemi
Authors FILIPOVIČ, Jiří (203 Czech Republic, guarantor, belonging to the institution), Filip PETROVIČ (703 Slovakia, belonging to the institution) and Siegfried BENKNER (40 Austria).
Edition Portland (USA), 1st Workshop on Autotuning and Adaptivity Approaches for Energy Efficient HPC Systems (ANDARE'2017), p. nestránkováno, 6 pp. 2017.
Publisher ACM
Other information
Original language English
Type of outcome Proceedings paper
Field of Study 10201 Computer sciences, information science, bioinformatics
Country of publisher United States of America
Confidentiality degree is not subject to a state or trade secret
Publication form electronic version available online
WWW URL
RIV identification code RIV/00216224:14610/17:00098442
Organization unit Institute of Computer Science
ISBN 978-1-4503-5363-2
Doi http://dx.doi.org/10.1145/3152821.3152877
Keywords (in Czech) autotuning; OpenCL; CUDA; globální optimalizace
Keywords in English autotuning; OpenCL; CUDA; global optimization
Tags rivok
Tags International impact, Reviewed
Changed by Changed by: doc. RNDr. Jiří Filipovič, Ph.D., učo 72898. Changed: 5/4/2018 17:51.
Abstract
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.
Abstract (in Czech)
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.
Links
EF16_013/0001802, research and development projectName: CERIT Scientific Cloud
PrintDisplayed: 25/7/2024 22:14