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.
HSA has already released some specifications to unify memory and lower the overhead required in dispatching jobs to hardware for execution. The HSA has introduced a new uniform memory architecture called HUMA that makes different memory types in a system accessible to all processors. Developers have access to a larger pool of shared memory in which code could be executed.
HSA Foundation members do not include Intel and Nvidia, who offer their own parallel programming tools. But the foundation's goals are loosely tied to AMD's chip strategy in which the company integrates third-party intellectual property so chips can be customized to customer needs. For example, AMD is making a customized chip for Sony's upcoming PlayStation 4 gaming console. Sony is also a member of HSA Foundation.
AMD is also expected to release next year laptop and desktop processors code-named Kaveri in which CPUs and graphics processors will be able to share memory.