Syracuse team creates Java compiler for GPU compute

Rootbeer is an open source project that automatically parallelizes Java programming code.

Syracuse University Ph.D. candidate Philip C. Pratt-Szeliga, supported by faculty advisors James W. Fawcett and Roy D. Welch, have introduced GPU-parallel programming to the Java ecosphere. The new Root­beer compiler allows programmers who have wanted to exploit the processing power of SIMD GPUs but lacked specific skills with CUDA, DirectCompute OpenCL, or C++AMP access to the technology.

This is a raw chunk of “Root Beer” amber mined on the island of Java. It has nothing to do with the Rootbeer Java compiler, but makes a nice image for the article. (Source: eBay)

For researchers, scientists, and engineers who are not familiar with the complications of parallel programming, being able to use a high-level language like Java could open the door to a variety of new projects. Rootbeer, the developers say, supports multi-dimensional arrays, composite ob­jects, static fields, and dynamic mem­ory allocation, as well as synchronized methods, while automatically parallel­izing the program code and launching the GPU kernel.

“When converting a serial program to a parallel program that can run on a graphics processing unit, the developer must choose what functions will run on the GPU,” explains Pratt-Szeliga. “For each function the developer chooses, he or she needs to manually write code to serialize state to GPU memory, de­fine the kernel code that the GPU will execute, control the kernel launch, and deserialize state back to CPU memory.”

Rootbeer is open source software li­censed under the GNU General Public License. With it developers can write programs in Java, without having to worry about the underlying hardware. In its initial implementation, Rootbeer converts Java Bytecode to CUDA.

More information: