Detail předmětu
Paralelní výpočty na GPU
PCG Ak. rok 2023/2024 zimní semestr 5 kreditů
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.
Aktuální informace
|
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 12 hod. pc laboratoře
- 14 hod. projekty
Bodové hodnocení
- 60 bodů závěrečná zkouška (písemná část)
- 10 bodů půlsemestrální test (písemná část)
- 30 bodů projekty
Zajišťuje ústav
Přednášející
Cvičící
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.
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.
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.
Požadované prerekvizitní znalosti a dovednosti
Látka vyučovaná v předmětech AVS, PRL a částečně PPP.
Technické vybavení
- Superpočítač Karolina s 8 kartami Nvidia A100 na uzel.
Literatura studijní
- Aktuální PPT prezentace přednášek v Elearningu.
- Dokumentace Nvidia: https://docs.nvidia.com/cuda/
- Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2. download.
- Dokumentace OpenACC: https://www.openacc.org/
- Sanders, J., & Kandrot, E: CUDA by Example: An Introduction to General-Purpose GPU Programming. Review Literature And Arts Of The Americas. Addison-Wesley, 2010. download.
- Storti,D., and Yurtoglu, M.: CUDA for Engineers: An Introduction to High-Performance Parallel Computing, Addison-Wesley Professional; 1 edition, 2015. ISBN 978-0134177410. link.
- Chandrasekaran, S., and Juckeland, G.: OpenACC for Programmers: Concepts and Strategies, Addison-Wesley Professional, 2017, ISBN 978-0134694283. link.
Osnova přednášek
- Architektura grafických jednotek GPU.
- CUDA model vykonávání programu.
- CUDA hierarchie pamětí.
- Synchronizace a redukce.
- Dynamický paralelismus a unifikovaná paměť.
- Návrh a optimalizace algoritmů pro GPU.
- Víceproudové zpracování, překrytí komunikace a výpočtu.
- Multi-GPU systémy.
- Knihovna Nvidia Thrust.
- Základy knihovny OpenACC.
- Správa paměti v OpenACC.
- Optimalizace s OpenACC.
- Knihovny pro akceleraci výpočtů pomocí GPU.
Osnova počítačových cvičení
- CUDA: Paměťové přenosy, jednoduché kernely (3. týden)
- CUDA: Práce se sdílenou pamětí (5. týden).
- CUDA: Práce s texturní a konstantní pamětí (6. týden).
- CUDA: Dynamický paralelismus, streamy (7. týden).
- OpenACC: základní techniky (10. týden).
- OpenACC: pokročilé techniky (11. týden).
Osnova ostatní - projekty, práce
- Vývoj aplikace v prostředí Nvidia CUDA
- Vývoj aplikace v prostředí OpenACC
Průběžná kontrola studia
Vyhodnocení dvou projektů v celkovém rozsahu 14 hodin a půlsemestrální písemky.
- Zameškaná cvičení je možné nahradit v alternativní termín.
- V poslední týdnu semestru budou probíhat náhradní cvičení.
Rozvrh
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Po | zkouška | 2024-01-29 | L314 | 09:00 | 10:50 | 2. termín | |||
St | zkouška | 2023-11-08 | E105 | 09:00 | 09:50 | Půlsemestrální test | |||
St | přednáška | 1., 2., 3., 5., 6., 7., 8., 9., 10., 11., 13. výuky | E105 | 09:00 | 10:50 | 70 | 1MIT 2MIT | NHPC xx | Jaroš |
St | přednáška | 2023-12-06 | E105 | 09:00 | 10:50 | 70 | 1MIT 2MIT | NHPC xx | Bayer |
St | zkouška | 2023-12-20 | E104 | 13:00 | 14:50 | Předtermín zkoušky | |||
St | poč. lab | 3., 5., 6., 7., 10., 11. výuky | O204 | 14:00 | 15:50 | 16 | 1MIT 2MIT | xx | Bayer |
St | poč. lab | 3., 5., 6., 7., 10., 11. výuky | O204 | 16:00 | 17:50 | 16 | 1MIT 2MIT | xx | Bayer |
Čt | zkouška | 2024-01-04 | E104 | 14:00 | 15:50 | řádná | |||
Pá | zkouška | 2024-01-19 | L321 | 09:00 | 10:50 | 1. termín |
Zařazení předmětu ve studijních plánech