It is intended that the GPU will be used transparently by Java code employing Java 8's streams (bulk collection operations, akin to .Net's LINQ), in addition to more explicit usage (compile Java bytecode to GPU kernels).
This is one of the things that makes java 8 really exiting.
I think it is going to show where JIT languages are going to shine in comparison to AOT compiled ones.
Multi architecture code in one program without the developer needing to jump through hoops.
Graal/JVM (like pypy) is a really nice way to bring many languages to advanced VM's. See for example node.jar/nashorn/"fast js on the jvm" or Topaz and Truffle
(Ruby on pypy and graal/jvm)
Not only that, replacing Hotspot by Graal will also reduce the amount of C++ code in the standard JVM towards the goal of having a production quality meta VM.
Totally agree, I never wanted to get involved in C++ hotspot. But graal development (even to the point of generating assembly) looks much more welcoming.
It is part of the wishlist for post Java 8 as presented on Java One 2013, but the wishlist was presented without any guarantee of what will be the exact focus.
I was thinking about looking into Go, but this changed my plans. Aparapi + HSA chip looks far more fun and interesting. Combined with Java 8, and easy GPU programming is finally here.
Thank you for your references. I remember that a lot of people complained about Java is too slow since it's an interpret language, as apposed to compilation language like C/C++ which executes the machine code fast. So a hardware JVM interpreter makes a lot more sense.
Somehow, Sun aborted that plan, but the JIT became farter now. But I still don't get it why it has anything to do the AMD's new APU?
* http://semiaccurate.com/2013/11/11/amd-charts-path-java-gpu/
* http://www.oracle.com/technetwork/java/jvmls2013caspole-2013...
* http://developer.amd.com/community/blog/2011/09/14/i-dont-al...
* http://openjdk.java.net/projects/sumatra/
It is intended that the GPU will be used transparently by Java code employing Java 8's streams (bulk collection operations, akin to .Net's LINQ), in addition to more explicit usage (compile Java bytecode to GPU kernels).