A CUDA Back-End for the Equelle Compiler
Department of Physics, Faculty of Natural Sciences and Technology, Norwegian University of Science and Technology
Norwegian University of Science and Technology, 2014
@article{holm2014cuda,
title={A CUDA Back-End for the Equelle Compiler.},
author={Holm, H{aa}vard Heitlo},
year={2014},
publisher={Institutt for matematiske fag}
}
As parallel and heterogeneous computing becomes more and more a necessity for implementing high performance simulators, it becomes increasingly harder for scientists and engineers without experience in high performance computing to achieve good performance. Even for those who knows how to write efficient code the process for doing so is time consuming and error prone, and maintaining and implementing changes in such code requires huge effort. By providing tools for automated utilization of parallel hardware, such efforts could be restricted and experts in numerical methods could spend their time on expressing better methods rather than on implementation details.In this thesis we present a CUDA back-end for the Equelle compiler. Equelle is a domain-specific language designed for writing simulators of partial differential equations, and is under development at SINTEF ICT. The language provides natural syntax for describing finite volume methods, and lets the compiler take care of high performance. The back-end presented in this thesis allows programs written in Equelle be compiled to execute on graphics processing units (GPUs), without requiring the user to have any knowledge in GPU programming.We have verified correctness of the CUDA back-end by applying it to Equelle simulators for the shallow water equations and both explicit and implicit methods for the heat equation. Good performance have been shown for all three simulators, and we discuss what should be done next to achieve even higher performance.
September 8, 2014 by hgpu