Sumatra's GPU harnessing now official OpenJDK project
The Sumatra project has been confirmed as an official OpenJDK project at the JavaOne conference currently underway in San Francisco. The project, which was first revealed in August, aims to create a version of Java that can make effective use of the GPU processing power available on graphics cards or integrated with CPUs. Having received the OK of the community via the project mailing list, both Java owner Oracle and chip maker and GPU specialist AMD are participating in the Sumatra project.
Sumatra will utilise features and libraries from Java 8's Lambda project, which implements closures for Java, while Oracle's HotSpot will be the reference JVM (Java Virtual Machine). Initially, annotated lambda expressions will be identified by HotSpot's JIT compiler which will, if a GPU is available, then compile the Java code of the expression into OpenCL code which can then be executed by the GPU. The process should be transparent for Java developers who need only annotate their code and use Java 8's lambdas to get the benefit of the planned enhancements. The hope is for the developers in the future to extend the technique to other Java language constructs.
The idea is not new, with AMD having announced its own Project Aparapi back in 2010. Aparapi also compiled Java bytecode into OpenCL, but in contrast to Sumatra operated as a JNI extension to Java. There is also the Rootbeer GPU Compiler, a relatively new piece of software written by a PhD student at New York's Syracuse University; this is being compared to other approaches which bind CUDA or OpenCL libraries in Java code.
Although the project is being built using Java 8 technologies, developments arising from the project should not be expected to find their way into Java 8, which is due out next year.