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
B4M39GPU Obecné výpočty na grafických procesorech Rozsah výuky:1P+2C
Garanti:Sloup J. Role:V Jazyk výuky:CS
Vyučující:Sloup J. Zakončení:KZ
Zodpovědná katedra:13139 Kreditů:4 Semestr:Z

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, jakyky 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. Vicevláknové programování.
3. Popis architektury nVidia CUDA a základy jejího programování (Compute Unified Device Architecture).
4. Práce s vlákny a přístup do paměti (CUDA).
5. Metody optimalizace kódu (CUDA).
6. Ukázky návrhu a implementace aplikací v prostředí CUDA.
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. Ukázky konkrétních příkladů vicevláknových aplikací.
3. CUDA - překlad programu, ladění, jednoduché příklady. Zadání projektu.
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. Samostatná práce na projektu - konzultace I.
7. Samostatná práce na projektu - konzultace I.
8. Průběžná kontrola první části projektu.
9. OpenCL - překlad programu, ladění, jednoduché příklady.
10. OpenCL - řešení jednoduché úlohy (doplňování kódu do předpřipravené kostry
aplikace).
11. Samostatná práce na projektu - konzultace II.
12. Samostatná práce na projektu - konzultace II.
13. Odezvdáváni projektu + dokumentace.
14. Zápočty.

Literatura:

1. David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 1st edition, 2010, ISBN-13: 978-0123814722.
2. Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition, 2010, ISBN-13: 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:

Další podrobnější informace o předmětu (včetně podmínek pro udělení klasifikovaného zápočtu) najdete na webové stránce http://cent.felk.cvut.cz/courses/GPU .

Webová stránka:

http://cent.felk.cvut.cz/courses/GPU

Klíčová slova:

OpenCL, CUDA

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
MPOI1 Umělá inteligence V
MPOI5NEW Softwarové inženýrství V
MPOI4NEW Počítačová grafika a interakce V
MPOI5 Softwarové inženýrství V
MPOI4 Počítačová grafika a interakce V
MPOI3 Počítačové vidění a digitální obraz V
MPOI2 Počítačové inženýrství V


Stránka vytvořena 6.12.2019 17:50:54, semestry: Z,L/2020-1, L/2018-9, Z,L/2019-20, 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)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.