Challenges Porting a C++ Template-Metaprogramming Abstraction Layer to Directive-based Offloading

10/16/2021
by   Jeffrey Kelling, et al.
0

HPC systems employ a growing variety of compute accelerators with different architectures and from different vendors. Large scientific applications are required to run efficiently across these systems but need to retain a single code-base in order to not stifle development. Directive-based offloading programming models set out to provide the required portability, but, to existing codes, they themselves represent yet another API to port to. Here, we present our approach of porting the GPU-accelerated particle-in-cell code PIConGPU to OpenACC and OpenMP target by adding two new backends to its existing C++-template metaprogramming-based offloading abstraction layer alpaka and avoiding other modifications to the application code. We introduce our approach in the face of conflicts between requirements and available features in the standards as well as practical hurdles posed by immature compiler support.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/25/2017

Performance Portability Strategies for Grid C++ Expression Templates

One of the key requirements for the Lattice QCD Application Development ...
research
12/14/2021

Matrix-free approaches for GPU acceleration of a high-order finite element hydrodynamics application using MFEM, Umpire, and RAJA

With the introduction of advanced heterogeneous computing architectures ...
research
10/19/2020

Performance Assessment of OpenMP Compilers Targeting NVIDIA V100 GPUs

Heterogeneous systems are becoming increasingly prevalent. In order to e...
research
04/09/2023

Portability and Scalability of OpenMP Offloading on State-of-the-art Accelerators

Over the last decade, most of the increase in computing power has been g...
research
06/24/2019

Heterogeneous Active Messages (HAM) – Implementing Lightweight Remote Procedure Calls in C++

We present HAM (Heterogeneous Active Messages), a C++-only active messag...
research
02/08/2018

Improving the Universality and Learnability of Neural Programmer-Interpreters with Combinator Abstraction

To overcome the limitations of Neural Programmer-Interpreters (NPI) in i...
research
03/15/2023

Simulating Stellar Merger using HPX/Kokkos on A64FX on Supercomputer Fugaku

The increasing availability of machines relying on non-GPU architectures...

Please sign up or login with your details

Forgot password? Click here to reset