Paralelní programování v OpenMP, MPI a CUDA
Osnova témat
-
- Co je to GPU?
Definice, renderování, představení Nvidia RTX 3090 GPU. - Srovnání s CPU.
Srovnání designu a čipů, důsledky.
Mooreův zákon, limity CPU, paralelismus.
Pár definic: speedup, efficiency,... - Domácí úkol viz https://github.com/celnda/GPU-subject
- Co je to GPU?
-
- Základy programování.
C, C++, CUDA, "Hello, world". - Paměť na GPU.
Úrovně paměti, cache, coalesced access.
Latence různých druhů paměti, důsledky. - Stavební bloky.
Vlákno (thread), grid, SM (streaming multiprocessor), ... - Cvičení: https://github.com/celnda/GPU-subject.
- Základy programování.
-
- Čeho si všímat.
Techniky: Jak je uspořádaná paměť, druhy paralelizace. - Paměť.
Sdílená paměť a řešení konfliktů, „závod dat“.
Pole struktur nebo struktura polí? - Výpočty
Výp. jednotky dle požadované rychlosti.
Divergence vláken („nepoužívat if“!).
Paralelizace na úrovni instrukcí. - Cvičení: https://github.com/celnda/GPU-subject.
- Čeho si všímat.