PV197 GPU Programming

Fakulta informatiky
podzim 2009
Rozsah
1/0. 2 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k.
Vyučující
RNDr. Jiří Filipovič, Ph.D. (přednášející)
doc. RNDr. Petr Holub, Ph.D. (přednášející)
RNDr. Jiří Matela, Ph.D. (pomocník)
Garance
prof. Ing. Václav Přenosil, CSc.
Katedra strojového učení a zpracování dat – Fakulta informatiky
Kontaktní osoba: prof. Ing. Václav Přenosil, CSc.
Rozvrh
Po 18:00–19:50 D2
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á 40 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, základní pohled na model paralelismu, základy CUDA, úvodní demonstrační program
  • GPU hardware a paralelismus: podrobný, atomické, výpočty, příklad různého rozdělení vláken na násobení matic (naivní přístup versus přístup po blocích)
  • GPU paměťový model: coalescing, bank, přístup, příklad -- transpozice matic
  • CUDA, nástroje a knihovny: podrobný, kompilace, emulace, profiler, zadání projektu
  • Optimalizace: skrývání, redistribuce, paralelismus, optimalizace, optimalizace využití zdrojů
  • Návrhové vzory pro paralelní algoritmy I: vyžaduje přečtení, pochopení a propojení s CUDA modelem, materiálů z knihy Patterns for Parallel Programming
  • Návrhové vzory pro paralelní algoritmy II
  • Případové studie 1: Paralelní redukce, Prefix-scan
  • Případová studie 2: Molekulová dynamika, výpočet coulombovského potenciálu, výpočet sil s cutoff-em
  • Případová studie 3: Násobení matic, hybridní CPU/GPU algoritmus LU faktorizace
  • Případová studie 4: MRI, Quick sort, další příklady.
  • Rozprava o projektu, prezentace nejlepší dosažených vysledků, diskuse výsledků řešených samostatných zadání, prezentace 3 nejlepších výsledků autory řešení, 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 funkční řešení, 50% bonus za výkon. Ústní zkouška v průběhu zkouškového období, 50% hodnocení. Pro úspěšné absolvování nesmí být bodové hodnocení za funkční řešení a ústní zkoušku 0.
Vyučovací jazyk
Angličtina
Další komentáře
Studijní materiály
Předmět je vyučován jednorázově.
Poznámka k periodicitě výuky: v dalších semestrech bude součástí IV112.
Předmět je zařazen také v obdobích podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023.