Compiler Optimizations for Industrial Unstructured Mesh CFD Applications on GPUs
Dept. of Computing, Imperial College London
International Workshop on Languages and Compilers for Parallel Computing (LCPC), 2012
@article{bertolli2012compiler,
title={Compiler Optimizations for Industrial Unstructured Mesh CFD Applications on GPUs},
author={Bertolli, C. and Betts, A. and Loriant, N. and Mudalige, GR and Radford, D. and Giles, MB and Kelly, PHJ},
year={2012}
}
Graphical Processing Units (GPUs) have shown acceleration factors over multicores for structured mesh-based Computational Fluid Dynamics (CFD). However, the value remains unclear for dynamic and irregular applications. Our motivating example is HYDRA, an application used in production at Rolls Royce for the simulation of turbomachinery components of jet engines. In previous work we presented three optimizations: a technique able to split a highly complex loop into simpler loops, a kernel specific alternative code synthesis, and configuration parameter tuning. Using these optimizations systematically on HYDRA improves the GPU performance relative to the multicore CPU. We show how these optimizations can be automated in a compiler, through user annotations. Performance analysis of a large number of complex loops enables us to study the relationship between optimizations and the resource requirements of loops, in terms of registers and shared memory, which directly affect the loop performance.
August 11, 2012 by hgpu