With built-in support for concurrent programming to make multi-threading easier, Java™ technology is already taking advantage of some of the benefits of AMD’s platform. But there’s a lot more going on between AMD and the Java community that you may not know about. We are building performance advantages directly into Java tools and environments, making developers’ jobs easier. Read on to learn more.
Originally an AMD product, Aparapi was released to open source on September 14, 2011. Aparapi is an API for expressing data parallel workloads in Java™ and a runtime component capable of converting the Java™ bytecode of compatible workloads into OpenCL™ so that it can be executed on a variety of GPU devices. Learn more on the AMD Aparapi page.
The primary goal of this project is to enable Java applications to take advantage of accelerated processing units (APUs) to improve performance. Learn more at the Project Sumatra page.
Technical Articles & Presentations
AMD’s Prototype HSAIL-enabled JDK8 for the OpenJDK Sumatra Project, Eric Caspole, JVM Language Summit (2013): In this presentation from the JVM Language Summit, AMD’s Eric Caspole discusses the Sumatra OpenJDK project, GPU workload fundamentals, AMD APU and Heterogeneous System Architecture (HSA), and provides an AMD Heterogeneous System Architecture Intermediate Language (HSAIL)-enabled offload demo of JDK: View the presentation Ι Download the High Res Video Ι Download the Low Res Video
Graal and GPU Offload, by Thomas Wuerthinger and Vasanth Venkatachalam, JVM Language Summit (2013): In this JVM Language Summit presentation, AMD’s Vasanth Venkatachalam, along with Oracle’s Thomas Wuerthinger, discuss Truffle and Graal, andVasanth further reviews adding an HSAIL GPU back-end to Graal: View the presentation Ι Download the High Res Video Ι Download the Low Res Video
OpenJDK Sumatra Project: Bringing the GPU to Java, by Eric Caspole, APU13 (2013): At the AMD Developer Summit 2013, Eric discusses AMD’S prototype HSAIL-enabled JDK8 for the OpenJDK Smatra project.
The Role of Java in Heterogeneous Computing & How You Can Help, by Nandini Ramani, VP, Java Platform, Oracle Corporation, APU13 (2013): In this keynote from the 2013 AMD Developer Summit, Oracle Vice President Nandini Ramani discusses the role of Java in heterogeneous computing.
Bringing Spatial Love to your Java Application, by Steven Citron-Pousty, APU13 (2013): In this presentation from the 2013 AMD Developer Summit, Steven talks about MongoDB Spatial, JEE, PaaS and more.
Aparapi and HSA: Easing the developer path to APU/GPU accelerated Java applications, by Gary Frost and Vignesh Ravi, APU13 (2013): This presentation covers Java GPU enablement via Aparapi, Open Source framework Java Application, and discusses how developers can eﬃciently represent data parallel algorithms in Java using Stream API + Lambda expressions, plus much more.
GPU Accelerated 3D Graphics for Java, by Kevin Rushforth, Chien Yang, John Yoon and Nicolas Lorain, APU13 (2013): In this presentation from the 2013 AMD Developer Summit, Oracle Corporation’s Kevin Rushforth and Chien Yang discuss JavaFX Graphics, Transforms, Camera and Coordinate System, Z-buffer (depth test), 3D geometry, 3D attributes, 3D picking, MSAA, and SubScene.
A Tutorial on Adding New Instructions to the Oracle® Java™ HotSpot ™ Virtual Machine (2012): Architecture-specific code generation changes for Java programs often require modifying the Java Virtual Machine (JVM) to support new target machine instructions or sequences of these instructions. This article discusses how to add this support to the Oracle® Java HotSpot Virtual Machine, using as a running example the addition of an instruction sequence for a floating-point conditional move optimization. By the end of this article, the reader should better understand the process of adding new instructions or instruction sequences that support their own optimizations.
If you’re looking for something from a few years back, browse this section. This archive provides information, articles and presentations from earlier Java™ work, including optimizing Java performance in a virtual machine environment, Java™ performance when debugging is enabled and more. View the Java Zone archive.