GPU Offloading in ExaHyPE Through C++ Standard Algorithms
Department of Computer Science, Durham University, United Kingdom
arXiv:2302.09005 [cs.MS], (17 Feb 2023)
@misc{https://doi.org/10.48550/arxiv.2302.09005,
doi={10.48550/ARXIV.2302.09005},
url={https://arxiv.org/abs/2302.09005},
author={Gomez, Uzmar and Gadeschi, Gonzalo Brito and Weinzierl, Tobias},
keywords={Mathematical Software (cs.MS), FOS: Computer and information sciences, FOS: Computer and information sciences},
title={GPU Offloading in ExaHyPE Through C++ Standard Algorithms},
publisher={arXiv},
year={2023},
copyright={Creative Commons Attribution 4.0 International}
}
The ISO C++17 standard introduces parallel algorithms, a parallel programming model promising portability across a wide variety of parallel hardware including multi-core CPUs, GPUs, and FPGAs. Since 2019, the NVIDIA HPC SDK compiler suite supports this programming model for multi-core CPUs and GPUs. ExaHyPE is a solver engine for hyperbolic partial differential equations for complex wave phenomena. It supports multiple numerical methods including Finite Volumes and ADER-DG, and employs adaptive mesh refinement with dynamic load balancing via space-filling curves as well as task-based parallelism and offloading to GPUs. This study ports ExaHyPE’s tasks over blocks of Finite Volumes to the ISO C++ parallel algorithms programming model, and compares its performance and usability against an OpenMP implementation with offloading via OpenMP target directives. It shows that ISO C++ is a feasible programming model for non-trivial applications like our task-based AMR code. The realisation is bare of vendor-specific or non-C++ extensions. It however is slower than its OpenMP counterpart.
February 26, 2023 by hgpu