KERNELGEN – A Toolchain for Automatic GPU-centric Applications Porting

Dmitry Mikushin, Nicolas Likhogrud
Institute of Computational Science, Faculty of Informatics, University of Lugano, Switzerland
SC’12, 2012


   title={KERNELGEN – A Toolchain for Automatic GPU-centric Applications Porting},

   author={Mikushin, Dmitry and Likhogrud, Nicolas},



Download Download (PDF)   View View   Source Source   Source codes Source codes




KernelGen is a toolchain for porting existing source code on the GPU, that does not involve inserting annotations or manual kernels programming, but instead moves as much target source on the GPU, as possible, enabling automatic adaptation of large codebase, e.g. numerical models. Separate kernels are generated for parallel loops, and the rest of the code is inlined into single-threaded main kernel. Thus, for extra penalty of running some serial code on the GPU, the amount of data transfers could be significantly reduced. Unportable code like disk I/O and syscalls are offloaded on the host. Parallel loops extraction and analysis is performed with LLVM IR by means of specially developed transformations and LLVM Polly polyhedral analysis, both during compile time and runtime. With gcc frontend integration, KernelGen is able to generate GPU kernels for all major target languages. Performance tests showed the resulting kernels efficiency is similar to commercial compilers.
Rating: 2.5/5. From 1 vote.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: