PV197 GPU Programming

Fakulta informatiky
podzim 2017
Rozsah
1/1. 2 kr. (plus ukončení). Ukončení: zk.
Vyučující
doc. RNDr. Jiří Filipovič, Ph.D. (přednášející)
prof. RNDr. Jiří Barnat, Ph.D. (pomocník)
doc. RNDr. Petr Holub, Ph.D. (pomocník)
RNDr. Jiří Matela, Ph.D. (pomocník)
Garance
doc. RNDr. Eva Hladká, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 14:00–15:50 A320
Předpoklady
IB109 Návrh paralelních systémů
Předpokládá se znalost základů jazyka C, základní přehled architektury procesorů a paralelizace algoritmů.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Cíle předmětu
Po dokončení kurzu by studenti měli být schopni: popsat architekturu, programovací model a optimalizaci pro GPU; vysvětlit GPU implementaci několika široce používaných algoritmů; vytvořit GPU implementaci pro daný výpočetní problém; posoudit vhodnost výpočetního problému pro akceleraci pomocí GPU.
Osnova
  • Úvod: motivace, architektura, základní pohled na model paralelismu, základy CUDA, úvodní demonstrační program
  • GPU hardware a paralelismus: podrobný popis architektury, synchronizace, příklad různého rozdělení vláken na násobení matic (naivní přístup versus přístup po blocích)
  • Výkon GPU hardware: optimalizace přístupu do paměti, rychlost běhu instrukcí, příklad -- transpozice matic
  • CUDA, nástroje a knihovny: podrobný popis API, kompilace, profiler, základní knihovny, zadání projektu
  • Optimalizace: specifika a obecné zásady optimalizace pro GPU, revize násobení matic, paralelní redukce
  • Paralelizace obecně: dekompizice problému, analýza závislostí, analýza návrhu, vzory paralelismu
  • Metriky efektivity na GPU: souběžné využití CPU a GPU, metriky umožňující odhad výkonu algoritmu na GPU, demonstrace na zobrazovacích algoritmech, zásady měření výkonu algoritmů
  • OpenCL: úvod do OpenCL, rozdíly oproti CUDA, využití OpenCL pro hardware nedostupný v CUDA
  • Případová studie 1: Výpočet energetického pole molekuly, automatická optimalizace funkcí omezených propustností paměti
  • Případová studie 2: Akcelerace komprese obrazu a videa
  • Případová studie 3: Akcelerace LTL model checkingu
  • Rozprava o projektu, prezentace dosažených vysledků, prezentace tří nejlepších výsledků jejich autory, závěrečná diskuse
Literatura
  • MATTSON, Timothy G, Beverly A. SANDERS a Berna MASSINGILL. Patterns for Parallel Programming. Boston: Addison-Wesley, 2005, xiii, 355. ISBN 0321228111. info
  • The data parallel programming model : foundations, HPF realization, and scientific applications. Edited by Guy-René Perrin - Alain Darte. Berlin: Springer, 1996, xv, 284. ISBN 3540617361. info
  • GPU gems 3. Edited by Hubert Nguyen. Upper Saddle River, NJ: Addison-Wesley, 2007, l, 942. ISBN 9780321515261. info
Výukové metody
Standardní výuka, čtení doporučené literatury, praktické řešení a programování zadaných úkolů.
Metody hodnocení
Bodované hodnocní řešení úkolů: 50% za projekt, až 30% bonus za výkon. Ústní zkouška v průběhu zkouškového období, 50% hodnocení. Pro úspěšné absolvování musí být za ústní zkoušku alespoň polovina maxima.
Vyučovací jazyk
Angličtina
Informace učitele
V odůvodněném případě (dostatečné vstupní znalosti, potřeba absolvování předmětu pro realizaci závěrečné práce atp.) lze zapsat předmět i bez splnění předpokladu IB109 (je třeba požádat v IS o výjimku).
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.