Compiling a high-level language for GPUs: (via language support for architectures and compilers)

Christophe Dubach, Perry Cheng, Rodric Rabbah, David F. Bacon, Stephen J. Fink
University of Edinburgh
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI ’12), 2012


   title={Compiling a high-level language for GPUs:(via language support for architectures and compilers)},

   author={Dubach, C. and Cheng, P. and Rabbah, R. and Bacon, D.F. and Fink, S.J.},

   booktitle={Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation},





Download Download (PDF)   View View   Source Source   



Languages such as OpenCL and CUDA offer a standard interface for general-purpose programming of GPUs. However, with these languages, programmers must explicitly manage numerous low-level details involving communication and synchronization. This burden makes programming GPUs difficult and error-prone, rendering these powerful devices inaccessible to most programmers. We desire a higher-level programming model that makes GPUs more accessible while also effectively exploiting their computational power. This paper presents features of Lime, a new Java-compatible language targeting heterogeneous systems, that allow an optimizing compiler to generate high quality GPU code. The key insight is that the language type system enforces isolation and immutability invariants that allow the compiler to optimize for a GPU without heroic compiler analysis. Our compiler attains GPU speedups between 75% and 140% of the performance of native OpenCL code.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: