GPU Offloading in ExaHyPE Through C++ Standard Algorithms

Uzmar Gomez, Gonzalo Brito Gadeschi, Tobias Weinzierl
Department of Computer Science, Durham University, United Kingdom
arXiv:2302.09005 [cs.MS], (17 Feb 2023)




   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},



   copyright={Creative Commons Attribution 4.0 International}


Download Download (PDF)   View View   Source Source   



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.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: