Předmět: Paralelní výpočty na grafických procesorech

» Seznam fakult » FAI » AUIUI
Název předmětu Paralelní výpočty na grafických procesorech
Kód předmětu AUIUI/AEPVG
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 3
Vyučovací jazyk Angličtina
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr