Auto-CLOUDSC: An Auto-generation Framework for Vectorization and Optimization of Cloud Microphysics Parameterization on ARM CPUs
摘要
With the rise of scalable vector extension instruction sets in ARM processor architectures, large Fortran-based scientific codes face challenges in performance portability. This paper focuses on CLOUDSC, a computationally intensive and data-access complex cloud microphysics parameterization scheme from the Integrated Forecasting System of ECMWF. We propose Auto-CLOUDSC, an auto-generation framework that optimizes CLOUDSC by the following methods, including (1) An auto-generator that contains three modules: function interface generator, code structure analyzer, and expression parser to convert Fortran to vectorization instruction sets. (2) A physics-combine algorithm that applies loop fusion to reduce redundant memory access. (3) A cache-aware algorithm that uses cache tiling and data layout optimization to improve data reuse. Experiments demonstrate that the auto-generated code achieves a speedup of 1.3 to 2.1 times over the original Fortran baseline on the Phytium FT2000+ ARMv8 processor.