Workshop: 12th Workshop on Accelerator Programming and Directives (WACCPD 2025)
Authors: Etienne Malaboeuf (CINES, CEA); Mathieu Peybernes (EPFL, SCITAS); Kévin Obrejan and Julien Julien (CEA); Emily Bourne (SCITAS, EPFL); and Virginie Grandgirard (CEA)
Abstract: This 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.
Back to 12th Workshop on Accelerator Programming and Directives (WACCPD 2025) Archive Listing Back to Full Workshop Archive Listing