Přednášky jsou tematicky rozděleny tak, aby získané znalosti mohli studenti aplikovat na cvičeních.
Obsah jednotlivých přednášek:
1. Úvod do paralelních výpočtů na GPU, GPU historie a CUDA
2. Architektura CUDA, integrace na úrovni C++ projektu
3. Práce s vlákny, kernel funkce
4. Typy CUDA pamětí, vzory pro jejich využití
5. Řešení konfliktů paměti GPU
6. Řízení běhu programu, distribuce algoritmu
7. Výkon algoritmu v závislosti na jeho paralelizaci na GPU
8. Základní vektorové a maticové operace
9. Optimalizace na datové úrovni aplikace, efektivní datové struktury.
10. Optimalizace z pohledu maximálního využití GPU
11. Doplňková knihovna CUBLAS
12. Případové studie
Obsah jednotlivých cvičení (cvičení jsou na počítačových učebnách):
1. Vytvoření základní šablony aplikace, první spuštění, ukázková aplikace
2. Ukázky transferu dat na/z GPU
3. Hierarchie vláken, základní běh vlákna, limity, volání kernel funkcí, parametry a omezení
4. Typy CUDA pamětí, vzory pro jejich využití
5. Optimalizace přístupů do paměti, volba vhodné datové struktury
6. Streamy, paralelní volání kernel funkcí, synchronizace na úrovni vláken, bloků, GPU vs. CPU
7. Případová studia, experiment s více variantami řešení téže úlohy
8. Základní vektorové a maticové operace, případová studie zpracování dat, paralelní redukce
9. Integrace podpůrných knihoven pro lineární algebru
10. Ukázka grafické úlohy a její řešení při různém nastavení, využití bufferování
11. Případové studie, představení konkrétní praktické úlohy, nástin jejího řešení, demonstrace experimentů
12. Ladění programu s využitím nástrojů nVidia nSight
Obsah jednotlivých přednášek:
1. Úvod do paralelních výpočtů na GPU, GPU historie a CUDA
2. Architektura CUDA, integrace na úrovni C++ projektu
3. Práce s vlákny, kernel funkce
4. Typy CUDA pamětí, vzory pro jejich využití
5. Řešení konfliktů paměti GPU
6. Řízení běhu programu, distribuce algoritmu
7. Výkon algoritmu v závislosti na jeho paralelizaci na GPU
8. Základní vektorové a maticové operace
9. Optimalizace na datové úrovni aplikace, efektivní datové struktury.
10. Optimalizace z pohledu maximálního využití GPU
11. Doplňková knihovna CUBLAS
12. Případové studie
Obsah jednotlivých cvičení (cvičení jsou na počítačových učebnách):
1. Vytvoření základní šablony aplikace, první spuštění, ukázková aplikace
2. Ukázky transferu dat na/z GPU
3. Hierarchie vláken, základní běh vlákna, limity, volání kernel funkcí, parametry a omezení
4. Typy CUDA pamětí, vzory pro jejich využití
5. Optimalizace přístupů do paměti, volba vhodné datové struktury
6. Streamy, paralelní volání kernel funkcí, synchronizace na úrovni vláken, bloků, GPU vs. CPU
7. Případová studia, experiment s více variantami řešení téže úlohy
8. Základní vektorové a maticové operace, případová studie zpracování dat, paralelní redukce
9. Integrace podpůrných knihoven pro lineární algebru
10. Ukázka grafické úlohy a její řešení při různém nastavení, využití bufferování
11. Případové studie, představení konkrétní praktické úlohy, nástin jejího řešení, demonstrace experimentů
12. Ladění programu s využitím nástrojů nVidia nSight