Detail předmětu
Paralelní výpočty na GPU
PCG Ak. rok 2024/2025 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.
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í.
Požadované prerekvizitní znalosti a dovednosti
Látka vyučovaná v předmětech AVS, PRL a částečně PPP.
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í (4. týden).
- CUDA: Práce s texturní a konstantní pamětí (5. týden).
- CUDA: Dynamický paralelismus, streamy (6. 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ínu.
- Pro udělení zápočtu je nutné získat min 20b ze 40b a minimálně 1b z každého projektu.
Rozvrh
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Út | zkouška | 2025-02-04 | E104 | 13:00 | 14:50 | 3. termín | |||
Út | zkouška | 2025-01-21 | E104 | 15:00 | 16:50 | 2. termín | |||
St | přednáška | 1., 2., 3., 4., 5., 6., 7., 8., 9., 11., 12., 13. výuky | E104 | 08:00 | 09:50 | 70 | 1MIT 2MIT | NHPC xx | Jaroš |
St | přednáška | 2024-11-20 | E104 | 08:00 | 09:50 | 70 | 1MIT 2MIT | NHPC xx | Bayer |
St | zkouška | 2025-01-08 | E104 | 12:00 | 13:50 | 1. termín | |||
St | poč. lab | 3., 4., 5., 6., 10., 11. výuky | O204 | 12:00 | 13:50 | 18 | 1MIT 2MIT | xx | Bayer |
St | poč. lab | 3., 4., 5., 6., 10., 11. výuky | O204 | 14:00 | 15:50 | 18 | 1MIT 2MIT | xx | Bayer |
Zařazení předmětu ve studijních plánech