Název:

Paralelní výpočty na GPU

Zkratka:PCG
Ak.rok:2019/2020
Semestr:zimní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
MITAINADE-volitelný
MITAINBIO-volitelný
MITAINCPS-volitelný
MITAINEMB-volitelný
MITAINGRI-volitelný
MITAINHPC-povinný
MITAINIDE-volitelný
MITAINISD-volitelný
MITAINISY-volitelný
MITAINMAL-volitelný
MITAINMAT-volitelný
MITAINNET-volitelný
MITAINSEC-volitelný
MITAINSEN-volitelný
MITAINSPE-volitelný
MITAINVER-volitelný
MITAINVIZ-volitelný
Vyučovací jazyk:čeština
Kredity:5 kreditů
Ukončení:zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:26001214
 zkouškatestycvičenílaboratořeostatní
Body:60150025
Garant:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Zástupce garanta:Vašíček Zdeněk, doc. Ing., Ph.D. (UPSY)
Přednášející:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Cvičící:Kadlubiak Kristián, Ing. (UPSY)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav počítačových systémů FIT VUT v Brně
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
PopřednáškavýukyG202 16:0017:501MIT 2MIT xx
Stpoč. labvýukyO204 08:0009:501MIT 2MIT xx
Stpoč. labvýukyO204 10:0011:501MIT 2MIT xx
Stpoč. labvýukyO204 12:0013:501MIT 2MIT xx
 
Cíle předmětu:
  Detailně se seznámit s architekturou a programováním grafických karet v oblasti obecných výpočtů pomocí knihoven Nvidia CUDA a standardu OpenACC. Naučit se navrhovat akcelerované programy využívající potenciál grafických karet. Seznámit se dostupnými knihovnami pro akceleraci výpočtu na grafických kartách. 
Anotace:
  Předmět pokrývá architekturu a programování grafických karet Nvidia a částečně i AMD. Nejprve je detailně rozebrána architektura grafických karet. Následně je popsán model vykonávání programu pomocí techniky SIMT a víceúrovňové rozdělení výpočtu do vláken a bloků. Následuje popis hierarchie paměti CUDA, techniky synchronizace a redukce. Následuje popis pokročilých technik dynamického paralelismu a data-flow zpracování na GPU zakončené možnostmi využití více GPU v distribuovaných systémech s technologií NVlink a MPI společně s technikami překrývání výpočtu a komunikace. Předmět dále popisuje vysokoúrovňové knihovny pro akceleraci algoritmů na GPU. Zbytek předmětu se věnuje technologii OpenACC, která významně zjednodušuje programování grafických karet pomocí pragma nápověd pro kompilátor.
Požadované prerekvizitní znalosti a dovednosti:
  Látka vyučovaná v předmětech AVS, PRL a částečně PPP.
Získané dovednosti, znalosti a kompetence z předmětu:
  Znalost využití grafických karet pro akceleraci obecných výpočtů, orientace v oblasti akcelerovaných výpočetních systémů a knihoven.
Dovednosti, znalosti a kompetence obecné:
  Pochopení důsledků hardwarových omezení na efektivitu softwarových řešení.
Proč je předmět vyučován:
  Budoucnost nejen superpočítačových systémů, ale i běžných PC je v heterogenních systémech, kde sekvenční a kontrolní část provádí běžný procesor, zatímco výpočetně náročné části jsou převedeny na akcelerátor, v tomto případě grafickou kartu. Tento předmět Vás provede úskalím programování grafických karet pomocí nízkoúrovňové knihovny Nvidia CUDA i vysokoúrovňového rozhraní OpenACC. Získáte tak potřebné znalosti pro zápis, testování a optimalizaci masivně paralelních výpočetních úloh.
Osnova přednášek:
 
  1. Architektura grafických jednotek GPU. 
  2. CUDA model vykonávání programu. 
  3. CUDA hierarchie pamětí. 
  4. Synchronizace a redukce. 
  5. Dynamický paralelismus a unifikovaná paměť. 
  6. Návrh a optimalizace algoritmů pro GPU. 
  7. Víceproudové zpracování, překrytí komunikace a výpočtu. 
  8. Multi-GPU systémy. 
  9. Knihovna Nvidia Thrust. 
  10. Základy knihovny OpenACC. 
  11. Správa paměti v OpenACC. 
  12. Optimalizace s OpenACC. 
  13. Knihovny pro akceleraci výpočtů pomocí GPU.
Osnova počítačových cvičení:
 
  1. CUDA: Paměťové přenosy, jednoduché kernely.
  2. CUDA: Práce se sdílenou pamětí.
  3. CUDA: Práce s texturní a konstantní pamětí.
  4. CUDA: Dynamický paralelismus, streamy.
  5. OpenACC: základní techniky.
  6. OpenACC: pokročilé techniky.
Osnova ostatní - projekty, práce:
 
  • Vývoj aplikace v prostředí Nvidia CUDA
  • Vývoj aplikace v prostředí OpenACC
Literatura referenční:
 
  • Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2
  • Sanders, J., & Kandrot, E: CUDA by Example: An Introduction to General-Purpose GPU Programming. Review Literature And Arts Of The Americas. Addison-Wesley, 2010.
  • Storti,D., and Yurtoglu, M.: CUDA for Engineers: An Introduction to High-Performance Parallel Computing, Addison-Wesley Professional; 1 edition, 2015. ISBN 978-0134177410.
  • Chandrasekaran, S., and Juckeland, G.: OpenACC for Programmers: Concepts and Strategies,  Addison-Wesley Professional, 2017, ISBN 978-0134694283
Literatura studijní:
 
Kontrolovaná výuka:
  
  • Zameškaná cvičení je možné nahradit v alternativní termín.
  • V poslední týdnu semestru budou probíhat náhradní cvičení.
Průběžná kontrola studia:
  Vyhodnocení dvou projektů v celkovém rozsahu 14 hodin, půlsemestrální písemka.
Podmínky zápočtu:
  Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.
 

Vaše IPv4 adresa: 34.229.126.29