Popis předmětu - B4M39GPU
Přehled studia |
Přehled oborů |
Všechny skupiny předmětů |
Všechny předměty |
Seznam rolí |
Vysvětlivky
Návod
Webová stránka:
https://cw.fel.cvut.cz/wiki/courses/B4M39GPU
Anotace:
Cílem předmětu je seznámení studentů se základními principy obecných výpočtů na grafických procesorech (GPGPU) a získání praktických zkušeností s návrhem a implementací aplikací využívajících pro urychlení výpočtů GPU. Výklad zahrnuje seznámení s architekturou současných grafických procesorů a jejími omezeními, základní koncepty paralelního programovaní GPU, jazyky pro programování GPU, technologii CUDA a metody optimalizace kódu. Cvičení jsou zaměřena na řešení typových úloh a semestrálních projektů. Důraz je kladen na získání praktických zkušeností s konkrétní technologií - CUDA.
Výsledek studentské ankety předmětu je zde:
A4M39GPU
Osnovy přednášek:
| 1. | | Úvod do počítání na GPU (architektury, jazyky, GPU versus CPU). |
| 2. | | Popis architektury NVIDIA CUDA a základy jejího programování. |
| 3. | | CUDA - práce s vlákny a přístup do paměti, typy pamětí. |
| 4. | | CUDA - implementace základních paralelních algoritmů (redukce, prefixový součet). |
| 5. | | CUDA - metody optimalizace kódu. |
| 6. | | CUDA - rozšíření - dynamický paralelismus, cooperative groups, unified memory, graf výpočtu. |
| 7. | | Ostatní jazyky pro GPGPU I - OpenCL (Open Computing Language). |
| 8. | | Ostatní jazyky pro GPGPU II - OpenGL Compute Shaders. |
Osnovy cvičení:
| 1. | | Úvod - požadavky, bodové hodnocení. |
| 2. | | CUDA - překlad programu, ladění, jednoduché příklady. Zadání projektu. |
| 3. | | CUDA - řešení jednoduchých příkladů. |
| 4. | | CUDA - řešení jednoduché úlohy I (doplňování kódu do předpřipravené kostry |
aplikace).
| 5. | | CUDA - řešení jednoduché úlohy II (doplňování kódu do předpřipravené kostry |
aplikace).
| 6. | | CUDA - řešení jednoduché úlohy III (doplňování kódu do předpřipravené kostry |
aplikace).
| 7. | | Samostatná práce na projektu - konzultace I. |
| 8. | | OpenCL - překlad programu, ladění, jednoduché příklady |
| 9. | | OpenCL - řešení jednoduché úlohy IV (doplňování kódu do předpřipravené kostry |
aplikace).
| 10. | | Samostatná práce na projektu - konzultace II. |
| 11. | | Samostatná práce na projektu - konzultace II. |
| 12. | | Odevzdávání projektů + dokumentace. |
| 13. | | Prezentace semestrálních projektů. Zápočty. |
Literatura:
| 1. | | Wen-mei W. Hwu, David B. Kirk, Izzat El Hajj: Programming Massively Parallel Processors: A Hands-on Approach. 4th ed., Elsevier, 2022, https://doi.org/10.1016/C2020-0-02969-5. |
| 2. | | Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. 1st ed., Addison-Wesley Professional, 2010, ISBN 978-0131387683. |
| 3. | | Aaftab Munshi, Benedict Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg: OpenCL Programming Guide. Addison-Wesley Professional, 2011, ISBN 978-0321749642. |
| 4. | | Gerassimos Barlas: Multicore and GPU Programming: An Integrated Approach. Morgan Kaufmann, 2014, ISBN 978-0124171374. |
Požadavky:
Programování v C/C++, lineární algebra.
Poznámka:
Klíčová slova:
OpenCL, CUDA
Předmět je zahrnut do těchto studijních plánů:
| Plán |
Obor |
Role |
Dop. semestr |
| Stránka vytvořena 10.3.2026 09:52:01, semestry: Z/2025-6, L/2027-8, Z,L/2026-7, Z/2027-8, L/2025-6, připomínky k informační náplni zasílejte správci studijních plánů |
Návrh a realizace: I. Halaška (K336), J. Novák (K336) |