Bringing GENE to GPUs: A Journey to Portability and Performance
DescriptionGENE is a widely-used simulation code for core plasma turbulence in fusion devices. It is used for many years on nearly all available high performance computing systems. Since the advent of GPU-based systems, the code has been reworked to leverage the great computing power of these accelerators. In this talk our porting way with pitfalls and successes will be presented. Two guiding principles led us through the process, first to keep the low-level implementation of the GPU code separated from the physics implementations of the equations and second to keep the implementations as portable as possible across upcoming devices, namely from NVIDIA, AMD and Intel. Being a modern Fortran code, the usage of all kinds of C++ frameworks seems to be at least complicated, we therefore decided to use a self-written mid-layer abstracting the creation of kernels and some numerical libraries (FFT, BLAS). Similarly we implemented a data model that also uses several backends for the different hardware architectures. This approach led to fast progress in porting and still reasonable performance.
TimeTuesday, June 2711:30 - 12:00 CEST