Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2 značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
NI-GPU | Programování a architektury grafických procesorů | Rozsah kontaktní výuky: | 2P+1C | ||
---|---|---|---|---|---|
Vyučující: | Šimeček I. | Způsob zakončení: | Z,ZK | ||
Zodpovědná katedra: | 18104 | ECTS Kredity: | 5 | Semestr: | L |
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ů.
Osnovy 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. |
Osnovy 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 |
Literatura:
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'' |
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).
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 25. 4. 2024, semestry: L/2019-20, Z/2022-3, Z/2021-2, Z/2019-20, Z/2020-1, L/2022-3, Z/2024-5, L/2020-1, Z,L/2023-4, L/2021-2, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: J. Novák, I. Halaška |