Close

Presentation

Porting a Fortran plasma simulation to Exascale on AMD GPUs using both OpenMP and Kokkos
DescriptionThis paper presents the 2-step work undertaken to port GYSELA, a petascale Fortran simulation code for turbulence in tokamak plasmas, to GPUs. The initial porting process using OpenMP offloading allowed for good performance in most of the code, with the exception of the collision operator, which became a major bottleneck. This performance critical operator was then rewritten in C++ using Kokkos. It is now known as KoLiOp, and is now one of the code modules with the largest speedups relative to the CPU baseline. We explain our strategy in both phases of development and provide an in-depth analysis of how we leveraged each framework for overall performance. The techniques detailed are applicable to other codes seeking to use a portability layer. Finally, we present a comparative benchmark run on the CPU (AMD Genoa) and GPU (MI250X) partitions of the Adastra machine as well as its upcoming MI300A APU nodes.