Obecné výpočty na GPU bližší informace o studiu na katedře

Detaily předmětu
Vyučující | Jaroslav Sloup |
---|---|
Rozsah výuky | 1 + 2 |
Kredity | 4 |
Semestr | Z |
Zakončení | Kz |
Web | https://cent.felk.cvut.cz/courses/GPU/ |
Rozvrh | 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, 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.
Přednášky
- 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í (Compute Unified Device Architecture).
- 3.
CUDA - typy pamětí a jejich použití. Paralelní redukce a prefixový součet.
- 4.
CUDA - optimalizace kódu, proudy.
- 5.
CUDA - dynamický paralelismus, cooperative groups a další rozšíření.
- 6.
Další jazyky pro GPGPU I - OpenCL (Open Computing Language).
- 7.
Další jazyky pro GPGPU II - OpenGL compute shadery.
Cvičení
- 1.
Úvod - požadavky, bodové hodnocení, projekty. Možnosti programování GPU.
- 2.
Vícevláknové programování, řešení jednoduché úlohy.
- 3.
CUDA - překlad programu, ladění, jednoduché příklady.
- 4.
CUDA - řešení jednoduchých příkladů.
- 5.
CUDA - řešení úloh I (doplňování kódu do předpřipravené kostry aplikace).
- 6.
CUDA - řešení úloh II (doplňování kódu do předpřipravené kostry aplikace).
- 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í úloh III (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 projektů + dokumentace.
- 14.
Prezentace projektů. Zápočty.
Literatura & zdroje
- 1.
David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 2nd edition, 2012.
- 2.
Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition, 2010.
- 3.
Aaftab Munshi, Benedict Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg: OpenCL Programming Guide. Addison-Wesley Professional, 1st edition, 2011.