PSyclone-based OpenACC kernels region delineation
Development description
A PSyclone transformation script for the delineation of large kernels regions that are intended for GPGPU acceleration through the addition of OpenACC directives across a large portion of the NEMO source code has been developed. This script will be added to directory sct/
, in order to provide a PSyclone transformation option OpenACC
(selectable via option -p OpenACC
of makenemo
), and is planned to be developed further.
Code implementation
The PSyclone transformation script makes use of an iterative bottom-up approach: it starts with a set of small kernels regions and iteratively enlarges the regions according to a range of rules until a steady state is reached. This script can be regarded as an alternative implementation of the recursive OpenACC kernels-region detection script kernels_trans.py
provided by PSyclone 2.4.0 and is intended to be kept generic and flexible for application with a variety of relevant compilers and across the majority of the NEMO Fortran source code.
Documentation updates
The availability and purpose of the PSyclone transformation script is planned to be mentioned in the relevant section on PSyclone-based source-code transformation in the NEMO User Guide.