Závěrečná práce: Bc. Jan Fousek, učo 172693: Optimalizace sekvencí mapovaných funkcí na GPU pomocí jejich skládání
Diplomová práce
Optimalizace sekvencí mapovaných funkcí na GPU pomocí jejich skládání
Optimization of mapped functions sequences using fusions on GPU
Anotace
Během implementace mapování funkcí na soudobých GPU je třeba brát v potaz několik proti sobě působících výkonnostních faktorů. V rámci předchozí práce bylo navrženo dekompozičně-fůzní schéma pro vytváření těchto implementací a je v této diplomové práci dále rozvedeno. Byl implementován optimalizující kompilátor automatizující výše uvedené schéma a hlavním přínosem této práce jsou algoritmy generující …více
Abstract
When implementing a function mapping on the contemporary GPU, several contradictory performance factors have to be balanced. Previously a decomposition-fusion scheme was devised to guide such an implementation and this work is here further elaborated. To ease this process, an automatic source-to-source compiler is presented, while the main subject of this thesis are the core algorithms for generation …více
Zadání práce
Moderní GPU svým výkonem v aritmetických operacích i propustností paměti řádově převyšují dnešní CPU. Abychom byli schopni využít aritmetickou sílu GPU, je zapotřebí provádět dostatek aritmetických operací v poměru k přenosům z/do globální paměti (ta má ve srovnání s instrukcemi řádově nižší propustnost a vyšší latence). Dosažení vhodného poměru aritmetických operací k paměťovým přenosům zpravidla není možné u mapování funkcí na množinu malých elementů, kde dochází k příliš omezenému znovuužívání dat načtených z globální paměti. Je-li na množinu elementů aplikována posloupnost funkcí, lze tyto funkce spojit a jejich mezivýsledky ukládat v řádově rychlejší paměti nacházející se přímo v GPU. Vyšší spotřeba této paměti však může redukovat stupeň paralelismu dosažitelný na GPU a s ním i jeho celkový výkon.
Jako vhodné řešení zmíněné problematiky se jeví implementace source-to-source kompilátoru, který bude schopen na základě jednoduchého kódu definujícího posloupnost volání funkcí automaticky spojovat jednotlivé funkce do větších celků a hledat optimum mezi šetřením přenosů z/do globální paměti pomocí spojování funkcí a umožněním dostatečného stupně paralelismu pomocí většího počtu oddělených funkcí.
Předmětem práce je na základě grafové reprezentace volání funkcí a předávání jejich parametrů definovat prostor všech korektních implementací a vyhledat implementace, u kterých lze předpokládat nejvyšší výkon.
Prostor implementací je daný pořadím volání funkcí s případnou replikací výpočtu, množinami funkcí které se spojí, implementací jednotlivých funkcí (každá může existovat v několika verzích) a případně dalšími aspekty které mohou ovlivnit rychlost výpočtu. Student navrhne algoritmy, které dokáží implementační prostor generovat a prořezávat (odstranění stavů, které a priory nemohou vézt k rychlejšímu výpočtu). Pokusí se nalézt metriky sloužící k odhadu výkonu jednotlivých implementací tak, aby nemusely být všechny benchmarkovány. Dále student prozkoumá možnosti optimalizace implementace jednotlivých spojení (znovuužití alokovaných dat ve sdílené paměti, vynechání synchronizace mezi funkcemi na místech, kde není nutná pro korektnost algoritmu, předávání dat přes registry namísto sdílené paměti aj.).
12. 1. 2011 13:39, doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
- Zadáno/změněno 8. 2. 2011 15:33, Eva Drštková
- Záznam založen 19. 11. 2010 10:46, Helena Kryštofová
- Zveřejnit od 10. 1. 2011 11:30, Helena Kryštofová
- Práce převzata 10. 1. 2011 11:30, Helena Kryštofová
Vedoucí
Práce na příbuzné téma
Seznam prací, které mají shodná klíčová slova.
-
Akcelerace procesu verifikace pomocí grafické karty
Mgr. Tomáš Lamr, učo 140423 -
Akcelerace inter-frame predikce standard H.265 na masivně paralelních GPU architekturách
Mgr. Vojtěch David -
Dynamic autotuning of SpMV kernel in CUSP library
Mgr. František Bráblík, učo 469074 -
Návrh a implementace aritmetického kodéru pro platformu CUDA
RNDr. Vít Rusňák, Ph.D., učo 172757 -
Akcelerace bilaterálního filtru na GPU
Mgr. Zoey Wraith -
Evolution of Nvidia GPU from microarchitectures Pascal to Ampere
Mgr. Marek Toma, učo 485275 -
Source-to-source compilation of mapped functions sequences in CUDA
Mgr. Matúš Madzin, učo 207505 -
Paralelní návrh a GPU implementace kompresního standardu HTJ2K
Mgr. Pavel Fikar




