Java for graphics cards
Phil Pratt-Szeliga, a postgraduate at Syracuse University in New York, has released the source code of his Rootbeer GPU compiler on Github. The developer presented the software at the High Performance Computing and Communication conference in Liverpool in June. The slides from this presentation can be found in the documentation section of the Github directory.
In his presentation, Pratt-Szeliga compares his compiler with the alternative of integrating CUDA or OpenCL libraries into Java code, and says that his approach allows for a higher degree of automation: his compiler automatically serialises complex graphs of objects into arrays of primitive types, he explained, adding that it uses the Soot Java optimisation framework to analyse the Java bytecode and automatically generate CUDA code.
The program comprises 21,000 lines of compiler source code, with 39 test cases, comprising 7,000 lines of program code. Pratt-Szeliga says he plans to maintain his creation until Java ceases to be popular. The developer said that so far all tests under Windows and Linux complete successfully. He noted, however, that dynamic method invocation, native methods and reflection are currently not supported, and that garbage collection will also be implemented at some point in the future.
The source code for Rootbeer is available under an MIT-style licence.