Industry consortium HSA Foundation intends to bring native support for parallel acceleration in Java virtual machines, which would make it easier to tap into multiple processors like graphics processors to speed up code execution.
HSA Foundation is in the process of developing an open hardware and software specification which will allow software to be written once and deployed easily across PCs, servers, gaming consoles and mobile devices. Right now overlays are needed for Java code to reach a co-processor like a GPU.
Native support for HSA's specifications in JVMs is expected with Java 9 in 2015, and parallel algorithms will be executed natively in JVMs without extra layers of code. The JVM will recognize HSA specifications, and tap into compatible accelerators to speed up program execution, said Phil Rogers, HSA Foundation president and Advanced Micro Devices corporate fellow, in a presentation at the Hot Chips conference in Stanford, California, on Sunday.
"Ultimately the parallel acceleration belongs in the Java virtual machine, and hopefully that is where it will reside," Rogers said.
HSA (Heterogeneous System Architecture) Foundation was founded last year by Advanced Micro Devices, Qualcomm, ARM Holdings and other companies. HSA's goal is to create a basic interface around industry-standard parallel programming tools like OpenCL, and to develop tools that are compatible across architectures and operating systems.
Computing devices use different hardware to speed up computing, and HSA's goal is also to harness the joint computing power of all processing resources available for faster and more power-efficient system performance. As an example, HSA specifications enable workloads to be broken up between CPUs and graphics processors for faster and more power efficient computing. That could lead to faster performance and longer battery life in mobile devices, and code can be deployed more cost-efficiently.
Some of the world's fastest computers harness the joint computing power of GPUs and CPUs for complex math calculations, while mobile devices have multiple processors for graphics and security. Some other types of co-processors include DSPs (digital signal processors), network processors, FPGAs (field programmable gate arrays) and specialized ASICs
(application-specific integrated circuits).
AMD and Oracle are sponsoring an OpenJDK project called "Project Sumatra" to bring parallel acceleration to JVMs with Java 8, which will be generally available in March next year. Sumatra will repurpose Java 8's multi-core APIs called Stream or Lambda to enable both CPU or GPU computing, but it will need an extra layer of code for parallel execution.
With Java 9, support for parallel execution on HSA-compatible processors will be native, Rogers said in an interview following the presentation. A data-parallel API called APARAPI already allows Java developers to use the compute power of GPU and CPUs, but code-enablement will get easier in Java 8 and then 9.
Java is widely used in cloud deployments and big data applications. Hardware acceleration of those tasks in a virtualized environment without the extra layers of code could be more efficient, Rogers said.
Sign up for Computerworld eNewsletters.