PV197 GPU Programming

Fakulta informatiky
podzim 2012
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
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Rozvrh
Po 12:00–13:50 G123
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
předmět má 42 mateřských oborů, zobrazit
Cíle předmětu
Předmět se soustředí na programování grafických procesorů (GPU), které při vhodném využití paralelismu umožňují dosažení výpočetních výkonů nedostupných na univerzálních procesorech. Studenti budou podrobně seznámeni s architekturou GPUa následně s programovacím modelem CUDA. Budou analyzovány základní vzory vhodné pro implementaci na GPU. Studenti budou samostatně vypracovávat řešení zadaných úkolů na GPU. Absolventi kurzu budou rozumět SIMD/SIMT paralelnímu programovacímu modelu a jeho využití na GPU. Budou schopni samostatně navrhovat paralelizaci algoritmů pro GPU a implementovat je pomocí programovacího modelu CUDA.
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 mapovaných funkcí
  • 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 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.