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

Optimalizace sekvencí mapovaných funkcí na GPU pomocí jejich skládání

Optimization of mapped functions sequences using fusions on GPU

Bc. Jan Fousek, učo 172693
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.).

Práce zkontrolována:
12. 1. 2011 13:39, doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
Plný text práce
1,1 MB / soubor PDF
Jazyk práce
angličtina angličtina
Termín obhajoby
8. 2. 2011
Práce byla úspěšně obhájena

Vedoucí

doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
NCBR PřF MU

Oponent

doc. RNDr. Petr Holub, Ph.D., učo 3248
BioMedAI CERIT-SC ÚVT MU

 
Název
Vložil
Vloženo
Práva
  • 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.