GPU porting, portably: Making MOM6 perform on any hardware with OpenMP offload and Fortran intrinsics

Yang E1, Ward M2, Galvez Vallejo J3, Wagura U2, Oliveira M1

1ACCESS-NRI, Acton, Australia, 2NOAA-GFDL, Plainsboro, USA, 3National Computing Infrastructure, Acton, Australia

Biography:

Edward is a Senior Research Software Engineer at ACCESS-NRI, specialising in GPU porting of ACCESS models. His background spans the entire HPC spectrum, from system administration, researcher support, and HPC software development and optimisation. He has authored or co-authored papers across the engineering simulation and life science domain and is currently a core developer for the MOM6 GPU porting project.

Abstract:

MOM6 (Modular Ocean Model 6) is one of the most computationally expensive components in Australia’s ACCESS models and is currently run only on CPUs. Driven by the scientific need for higher resolution earth-system simulations as well as trends in HPC infrastructure, ACCESS-NRI has joined forces with NOAA-GFDL to port MOM6 to GPUs. For portability and maintainability, we employ a hybrid Fortran intrinsic and OpenMP offload strategy. This strategy allows the MOM6 dynamic core to match, and often exceed, CPU performance and efficiency for a large range of problem sizes, while preserving a single code path and strict bitwise reproducibility.

This presentation highlights the realities of porting a large (>200k lines of code), modern Fortran codebase to GPUs, while maintaining CPU performance and bitwise reproducibility. After briefly addressing the trade-offs in maintainability, portability, and performance of existing GPU programming frameworks, we focus on current compiler limitations; evaluate how well the portability promise of OpenMP holds up by comparing performance on both AMD and NVIDIA GPUs; and walk through loop tiling strategies employed to obtain efficient execution on both CPUs and GPUs.

 

Categories

Website Sponsor

Website Sponsor