Diplomová práce

Generátor efektivního kódu fúzovaných CUDA kernelů

The generator of efficient CUDA code of fused kernels

Bc. Bedřich Lakomý, učo 172901
Anotace

KAS je source-to-source kompilátor pro tvorbu CUDA C kernelů z elementárních funkcí. Tato práce optimalizuje kód generovaný KASem pomocí následujících úprav KASu: snížení náročnosti přepočtu koordinát vláken v případě volání funkcí s rozdílnou velikostí bloku, vynechávání některých redundantních synchronizací, využití registrů pro mezivýsledky (dosud jen sdílená paměť), zavedení přístupových vzorů …více

Abstract

KAS is a source-to-source compiler for fusing CUDA C kernels from elementary functions. This thesis presents some optimizations for KAS that make it output code with higher performance. The performed optimizations are as follows: omiting some redundant synchronizations, using registers for intermediate results storage (was only shared memory sofar), adding access patterns for elementary functions and …více

Zadání práce

Aritmetický výkon dnešních GPU výrazně převyšuje jejich paměťovou propustnost, díky čemuž je rychlost běhu mnoha kernelů omezena rychlostí globální paměti. Je-li spuštěna sekvence kernelů, které spolu sdílí část vstupů či výstupů, je často možné snížit množství dat přenášených z/do globální paměti pomocí fúze kernelů (sdílená data tak mohou být uložena v rychlejších lokálních pamětech). Problematika fúzí kernelů je již nějakou dobu na FI studována a vznikl zde experimentální překladač optimalizující CUDA kód za pomoci fúzí.

Úkolem diplomové práce je vylepšit generátor kódu experimentálního překladače tak, aby generoval efektivnější výsledný kód fúzovaných kernelů. Student implementuje do generátoru logiku umožňující minimalizaci aritmetiky nutné k přepočtu koordinát vláken pro jednotlivé fúzované funkce. Dále student definuje jazyk, kterým bude možno popsat vzor přístupu jednotlivých fúzovaných funkcí do sdílené paměti. Implementuje vyhodnocení ekvivalence výrazů v tomto jazyku tak, aby bylo možno při shodném vzoru přístupu do paměti vynechat synchronizaci mezi vlákny v bloku a prozkoumá možnost předávat v tomto případě mezidata pomocí registrů (pro tento případ je nutné navrhnout úpravy metody predikce výkonu).

Práce zkontrolována:
30. 5. 2012 12:10, doc. RNDr. Jiří Filipovič, Ph.D., učo 72898
Jazyk práce
čeština čeština
Termín obhajoby
25. 6. 2012
Práce byla úspěšně obhájena

Vedoucí

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

Oponent

Mgr. Aleš Křenek, Ph.D., učo 3086
CUSupp ScColl CERIT-SC ÚVT MU

Literatura

  • AHO, Alfred V. Compilers : principles, techniques, & tools. 2nd ed. Boston: Pearson/Addison Wesley, 2007, xxiv, 1009. ISBN 0321486811.
  • FILIPOVIČ, Jiří; Igor PETERLÍK a Jan FOUSEK. GPU Acceleration of Equations Assembly in Finite Elements Method -- Preliminary Results. In Symposium on Application Accelerators in High Performance Computing 2009. 2009.
  • FOUSEK, Jan; Jiří FILIPOVIČ a Matúš MADZIN. Automatic Fusions of CUDA-GPU Kernels for Parallel Map. In Hideharu Amano and Wayne Luk. Second International workshop on highly-efficient accelerators and reconfigurable technologies (HEART). London (UK), 2011, s. 42-47.

Masarykova univerzita Fakulta informatiky
Studijní program
Aplikovaná informatika
Obor
  • 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.