Vyučující
|
-
Janků Peter, Ing. Ph.D.
-
Bližňák Michal, Ing. Ph.D.
|
Obsah předmětu
|
Přednášky: - Úvod do heterogenního paralelního programování - Úvod do CUDA C a programování kernelů, paměťový model, sčítání vektorů - Vícerozměrné bloky a mřížky, synchronizace vláken, paralelní násobení matic - Optimalizace paměťových operací - sdružený přístup do paměti, paralelní konvoluce - Atomické operace, Paralelizace histogramu - Pokročilé operace v CUDA aplikacích I: události, měření času, zjištění CC, ...) - Pokročilé operace v CUDA aplikacích II: datové přenosy (streamy) a paralelizace úloh - Optimalizace CUDA aplikací (divergence warpu v paralelní redukci a maticových operacích, sdružený přístup do paměti, optimalizace pro architektury Fermi a Kepler) - Vizualizace výsledků operací CUDA aplikací (Mandelbrot) - Unifikovaný paměťový model v CUDA 6 - Úvod do OpenCL API - Úvod do OpenACC API Cvičení: - Instalace a konfigurace vývojových prostředí - CUDA C API - součet vektorů - CUDA C API - jednoduché násobení matic (globální paměť) - CUDA C API - prokládané násobení matic (sdílená paměť) - CUDA C API - paralelní konvoluce - CUDA C API - paralelní histogram - CUDA C API - součet vektorů pomocí CUDA streamů
|
Studijní aktivity a metody výuky
|
nespecifikováno
|
Předpoklady |
---|
Odborné znalosti |
---|
Kurz navazuje na předchozí předměty "Programování v jazyce C" a "Paralelní procesy a programování". |
Kurz navazuje na předchozí předměty "Programování v jazyce C" a "Paralelní procesy a programování". |
Výsledky učení |
---|
popsat základní prvky jednotlivých architektur výpočetní GPU Nvidia |
popsat základní prvky jednotlivých architektur výpočetní GPU Nvidia |
vysvětlit princi plánování výpočetních operací na GPU |
vysvětlit princi plánování výpočetních operací na GPU |
vyjmenovat rozdíly při provádění výpočtů na GPU a CPU |
vyjmenovat rozdíly při provádění výpočtů na GPU a CPU |
vyjmenovat jednotlivé typy pamětí na GPU a charakterizovat je |
vyjmenovat jednotlivé typy pamětí na GPU a charakterizovat je |
definovat programový model CUDA aplikace a jeho napojení na HW |
definovat programový model CUDA aplikace a jeho napojení na HW |
Odborné dovednosti |
---|
vytvořit jednoduchou aplikaci s využitím programovacího jazyka C a knihovny Cuda |
vytvořit jednoduchou aplikaci s využitím programovacího jazyka C a knihovny Cuda |
použít jednotlivé paměti umístěné na GPU |
použít jednotlivé paměti umístěné na GPU |
využít paralelizace při přístupu do paměti s využitím streamů |
využít paralelizace při přístupu do paměti s využitím streamů |
analyzovat průběh vykonávání CUDA aplikace s využitím profilování |
analyzovat průběh vykonávání CUDA aplikace s využitím profilování |
navrhnout způsob paralelizace algoritmu na GPU s využitím knihovny Cuda |
navrhnout způsob paralelizace algoritmu na GPU s využitím knihovny Cuda |
Doporučená literatura
|
|