Programování v CUDA
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
MI-PRC | Z,ZK | 4 | 2P+1C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra počítačových systémů
- Anotace:
-
Studenti v předmětu získají přehled o současných paralelních architekturách užitých v grafických akcelerátorech. Dále získají praktické dovednosti při programování těchto systémů.
- Požadavky:
-
Programování v jazyce C/C++, paralelní algoritmy, základy architektur počítačů.
- Osnova přednášek:
-
1) Úvod do předmětu, bodové hodnocení
2) Vícevláknové programování na CPU
3) Úvod do GPGPU
4) Úvod do architektury CUDA
5) Datové typy CUDA
6) Synchronizace vláken a bloků
7) Textury a proudy
8) CUDA optimalizace I:
Architektura SIMT, sdružený přístup do paměti
9) CUDA optimalizace II:
Metody transformací zdrojových kódů
10) Knihovny pro CUDA API
11) Spolupráce CUDA s ostatními jazyky
12) Srovnání s ostatními API pro GPGPU
13) Rezerva a příprava na zkoušku
- Osnova cvičení:
-
1) Seznámení s prostředím, zadání semestrálních prací
2) Odevzdání sekvenční implementace,
3) Kompilace CUDA kódu, zapojení CUDA knihoven
4) Práce s nástroji pro ladění kódu a profilační nástroje
5) konzultace ke CUDA implementaci
6) odevzdaní CUDA implementace, zápočet
- Cíle studia:
-
Význam paralelního programování v současnosti rapidně roste v důsledku toho, že Moorův zákon se přesunul do paralelizace procesorů. GPGPU systémy se stávají běžnou komoditou a s těmito systémy se tak setkává běžně i koncový uživatel PC. To se stává výzvou pro vývojáře programů, neboť běžné aplikace bude třeba maximálně paralelizovat. Cílem je také naučit studenty nástroje a metody pro programování takových systémů založených na výpočetní síle GPU.
- Studijní materiály:
-
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:
-
Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/MI-PRC/
- Další informace:
- https://courses.fit.cvut.cz/MI-PRC/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Mgr. obor Znalostní inženýrství, 2016-2017 (volitelný předmět)
- Mgr. obor Počítačová bezpečnost, 2016-2019 (volitelný předmět)
- Mgr. obor Počítačové systémy a sítě, 2016-2019 (volitelný předmět)
- Mgr. obor Návrh a programování vestavných systémů, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Informační systémy a management, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. program Informatika, pro fázi studia bez oboru, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Systémové programování, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Teoretická informatika, 2016-2017 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2018-2019 (volitelný předmět)
- Mgr. obor Znalostní inženýrství, 2018-2019 (volitelný předmět)