Místo
Anotace
Moderní grafické procesory (GPU) jsou optimalizovány pro výpočty s vysokým stupněm paralelismu. Pokud se na GPU provádějí malé úlohy jednotlivě, často se nedosáhne jejich plného výkonu – velká část výpočetní kapacity zůstane nevyužita. Proto je vhodné tyto menší úlohy sdružit do dávky a zpracovat je současně, tzv. batched processing.
Tato technika je hojně využívána v:
- lineární algebře (např. cuBLAS a cuSolver mají batched varianty funkcí),
- optimalizačních metodách,
- řešení systémů lineárních rovnic s různými parametry,
- paralelních simulacích (např. se sadou různých počátečních podmínek).
V knihovně TNL tato strategie umožní efektivně škálovat i výpočty, které samy o sobě GPU plně nevyužívají.
Cíle práce (konkrétní zadání se domluví individuálně se studentem):
- Prostudovat principy dávkového zpracování na GPU (např. thread block per task, warp-level batching, grid-level batching).
- Navrhnout rozhraní pro dávkové zpracování v rámci TNL (např. BatchedLinearSystemSolver, BatchedSpMV, BatchedExplicitSolver).
- Implementovat ukázkovou dávkovou verzi zvoleného numerického algoritmu (např. řešení ODE/PDE, SpMV, lineární systém).
- Porovnat výkon dávkovaného a nedávkovaného řešení pro různé velikosti úloh.
- (Volitelně) navrhnout dynamické rozvrhování práce v dávce (load balancing).
- Ověřit použití v reálném scénáři – např. simulace více nezávislých fyzikálních jevů.
Přínosy pro studenta:
- Získá velice dobrou znalost programování pro GPU.
- Získá praktické zkušenosti s pokročilým programováním v jazyce C++.
- Osvojí si postupy potřebné pro vývoj větších softwarových projektů.
Zdroje:
- Aggarwal, Isha, et al. "Batched sparse iterative solvers for computational chemistry simulations on GPUs." 2021 12th Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems (ScalA). IEEE, 2021.
- Oberhuber, Tomáš, Jakub Klinkovský, and Radek Fučík. "TNL: Numerical library for modern parallel architectures." Acta Polytechnica 61.SI (2021): 122-134.
Vedoucí práce
Téma si rezervujte v KOSu