Technical report detail

KernelGen the design and implementation of a next generation compiler platform for accelerating numerical models on GPUs

by Dmitry Mikushin, Nikolay Likhogrud, Eddy Zheng Zhang, Christopher Bergstr÷m


GPUs are becoming pervasive in scientific computing. Originally served as peripheral accelerators, now they are gradually turning into central computing nodes. However, most current directive-based approaches for parallelizing sequential legacy code such as OpenACC and HMPP simply off-load ``hot'' CPU code onto GPUs, entailing a lot of limitations such as unsupported external calls and coarse-grained data dependence analysis. This paper introduces KernelGen, which is a parallelization framework with robust parallelism detection mechanism and a novel GPU-centric execution model. KernelGen supports the major scientific programming languages including C and Fortran, and has multiple backends that can generate target code for both X86 CPUs and NVIDIA GPUs. The efficiency of KernelGen has been demonstrated by the performance improvement up to 5.4x compared with three major commercial OpenACC compilers over a benchmark suite of numerical kernels.


Technical report 2013/02, July 2013

BibTex entry

@techreport{13kernelgen, author = {Dmitry Mikushin and Nikolay Likhogrud and Eddy Zheng Zhang and Christopher Bergstr title = {KernelGen the design and implementation of a next generation compiler platform for accelerating numerical models on GPUs}, institution = {University of Lugano}, number = {2013/02}, year = 2013, month = jul }
Allegati