Diplomová práce
Získaná ocenění: Cena děkana FI za vynikající závěrečnou práci

Framework pro auto-tuning paralelních kernelů

Framework for Parallel Kernels Auto-tuning

Bc. Filip Petrovič
Anotace

Výstupom tejto práce je framework pre auto-tuning paralelných kernelov, ktoré sú napísané v jazyku OpenCL alebo CUDA. Framework zahrňuje pokročilú funkcionalitu, vrátane podpory pre kompozície kernelov a online auto-tuning. Text práce popisuje API a vnútornú štruktúru frameworku a prezentuje viacero príkladov využitia frameworku pre optimalizáciu kernelov.

Abstract

The result of this thesis is a framework for auto-tuning of parallel kernels which are written in either OpenCL or CUDA language. The framework includes advanced functionality such as support for composite kernels and online auto-tuning. The thesis describes API and internal structure of the framework and presents several examples of its utilization for kernel optimization.

Zadání práce

Při urychlování běhu aplikací jsou výkonově kritické části kódu často implementovány jako paralelní kernely (např. v OpenCL či CUDA), který dokáží běžet na akcelerátorech, popř. i konvenčním CPU. Implementace vysoce optimalizovaných kernelů je velmi náročná: programátor musí identifikovat, které aspekty kódu ovlivňují jeho efektivitu a experimentovat s jejich variantami (např. měnit pořadí vnořených cyklů, měnit stupeň rozvinutí cyklů, způsob uspořádání dat v paměti aj.). Prostor variant kódu je mnohorozměrný, jeho manuální prohledávání je tedy často nepraktické. Navíc optimální kombinace variant kódu je často rozdílná pro rozdílný hardware, velikost vstupu, parametry výpočtu aj. Autotuning je metoda, která umožňuje automatické prohledávání variant kódu a výběr nejrychlejší varianty na základě empirického měření času běhu. Aplikace s integrovaným autotuningem je tedy schopna adaptovat své parametry na konkrétní nastavení, data či konkrétní hardware a zlepšit efektivitu svého běhu.

V diplomové práci student navrhne a implementuje framework pro autotuning kernelů v alespoň jednom z jazyků OpenCL či C for CUDA. Funkcionalita implementovaného frameworku bude zahrnovat:
1) možnost vytvořit kernely, jejich vstupy a výstupy a tyto kernely nad danými vstupy a výstupy spouštět
2) vytvoření a prohledávání prostoru parametrů tuningu (měnící varianty kódu), tyto parametry budou do kódu kernelů exportovány jako makra preprocesoru, kernely pak budou v průběhu prohledávání prostoru parametrů tuningu rekompilovány s exportovanými makry
3) schopnost globální optimalizace kernelů: stejně jako kernel může být optimalizovaná kompozice kernelů, kde každý parametr tuningu může ovlivňovat více kernelů i kód spouštějící kernely (např. lze měnit formát dat vstupu a výstupu, počty spuštění kernelu aj.)
4) možnou integraci do produkčního software a tuning za běhu výpočtu (tzv. online tuning, kdy aplikace provádí svůj výpočet a tuner transparentně mění nastavení parametrů tuningu a hledá optimum)

V práci je doporučeno vyjít z existujícího tuneru CLTune, který implementuje body 1-2, avšak nepodporuje funkcionalitu vyžadovanou v bodech 3-4.

Práce zkontrolována:
18. 5. 2018 11:21, doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
Jazyk práce
angličtina angličtina
Termín obhajoby
21. 6. 2018
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
CERIT SC ÚVT MU

Oponent

doc. RNDr. Petr Holub, Ph.D., učo 3248
BSD DKSD ÚVT MU

Masarykova univerzita Fakulta informatiky
Studijní program
Aplikovaná informatika
  • Přidání souboru

    Soubor nebo složku lze nahrát pomocí tlačítka Přidat.
  • Další operace se soubory

    Podrobnosti lze zjistit označením příslušného řádku.
  • Pohled pro experty

    Pro častou práci je možné zvolit režim Více možností.
  • Vyhledávání souborů

    Vyhledávaný výraz můžete zadat přímo do adresního řádku.
  • Rychlý přístup k souborům

    Pomocí funkce Nedávné je možné se rychle vrátit k právě prohlíženým souborům. Oblíbené soubory je také možné označit Hvězdičkou.