Programování a architektury grafických procesorů
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NI-GPU | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Ivan Šimeček
- Přednášející:
- Ivan Šimeček
- Cvičící:
- Ivan Šimeček
- Předmět zajišťuje:
- katedra počítačových systémů
- Anotace:
-
Studenti získají znalost vnitřní architektury moderních masivně paralelních GPU procesorů. Naučí se je programovat zejména v programovém prostředí jazyka CUDA, což je už dnes široce rozšířená programovací technologie GPU procesorů. Jako nedílnou součást efektivního výpočetního využití těchto hierarchických výpočetních struktur se studenti naučí i optimalizační programovací techniky a způsoby programování víceprocesorových GPU systémů.
- Požadavky:
-
Základy programování v C a C++ (na úrovni předmětů BI-PA1 a BI-PA2), doporučuje se absolvování předmětu Paralelní a distribuované programování (MI-PDP).
- Osnova přednášek:
-
1. GPU microarchitecture.
2.-4. (3) CUDA programming language.
5. Basic parallel operations (reduction and prefix sum).
6. Methods of synchronization of fibers and fiber blocks.
7. Optimization I: general optimization of massively parallel codes
8. Optimization II: SIMT architecture, combined memory access.
9. Optimization III: Memory subsystem architecture.
10. Collaboration multiple GPUs.
11. Asynchronous GPU calculations.
12. Case studies of GPU programs, development, debugging of GPU applications
13. HPC libraries and other APIs for GPGPU.
- Osnova cvičení:
-
1) Seznámení s prostředím, zadání semestrálních prací
2) Odevzdání sekvenční implementace
3) Kompilace GPU kódu, zapojení knihoven
4) Práce s nástroji pro ladění kódu a profilační nástroje
5) konzultace ke GPU implementaci
6) odevzdaní GPU implementace, zápočet
- Cíle studia:
- Studijní materiály:
-
Brian Tuomanen „Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA“ , Packt Publishing, 2018
Sudhakar Yalamanchili „GPU Architectures“ https://ece8823-sy.ece.gatech.edu/
J. Sanders, E. Kandrot ''CUDA by Example: An Introduction to General-Purpose GPU Programming''
David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. 1st ed., Morgan Kaufmann, 2010.
- Poznámka:
- Další informace:
- https://courses.fit.cvut.cz/NI-GPU/
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Mgr. specializace Teoretická informatika, 2018-2019 (volitelný předmět)
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (PS)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (volitelný předmět)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Mgr. specializace Systémové programování, verze od 2023 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)