Rootbeer: Seamlessly using GPUs from Java

Philip C. Pratt-Szeliga, James W. Fawcett, Roy D. Welch

Research output: Chapter in Book/Report/Conference proceedingConference contribution

41 Scopus citations

Abstract

When converting a serial program to a parallel program that can run on a Graphics Processing Unit (GPU) the developer must choose what functions will run on the GPU. For each function the developer chooses, he or she needs to manually write code to: 1) serialize state to GPU memory, 2) define the kernel code that the GPU will execute, 3) control the kernel launch and 4) deserialize state back to CPU memory. Rootbeer is a project that allows developers to simply write code in Java and the (de)serialization, kernel code generation and kernel launch is done automatically. This is in contrast to Java language bindings for CUDA or OpenCL where the developer still has to do these things manually. Rootbeer supports all features of the Java Programming Language except dynamic method invocation, reflection and native methods. The features that are supported are: 1) single and multi-dimensional arrays of primitive and reference types, 2) composite objects, 3) instance and static fields, 4) dynamic memory allocation, 5) inner classes, 6) synchronized methods and monitors, 7) strings and 8) exceptions that are thrown or caught on the GPU. Rootbeer is the most full-featured tool to enable GPU computing from within Java to date. Rootbeer is highly tested. We have 21k lines of product code and 6.5k lines of test cases that all pass on both Windows and Linux. We have created 3 performance example applications with results ranging from 3X slow-downs to 100X speed-ups. Rootbeer is free and open-source software licensed under the GNU General Public License version 3 (GPLv3).

Original languageEnglish (US)
Title of host publicationProceedings of the 14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012
Pages375-380
Number of pages6
DOIs
StatePublished - Dec 7 2012
Event14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012 - Liverpool, United Kingdom
Duration: Jun 25 2012Jun 27 2012

Publication series

NameProceedings of the 14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012

Other

Other14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012
CountryUnited Kingdom
CityLiverpool
Period6/25/126/27/12

Keywords

  • Compilers
  • GPGPU
  • Java

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Rootbeer: Seamlessly using GPUs from Java'. Together they form a unique fingerprint.

  • Cite this

    Pratt-Szeliga, P. C., Fawcett, J. W., & Welch, R. D. (2012). Rootbeer: Seamlessly using GPUs from Java. In Proceedings of the 14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012 (pp. 375-380). [6332196] (Proceedings of the 14th IEEE International Conference on High Performance Computing and Communications, HPCC-2012 - 9th IEEE International Conference on Embedded Software and Systems, ICESS-2012). https://doi.org/10.1109/HPCC.2012.57