Title: Java Code Reflection for Targeting Foreign Programming Languages
Subtitle: Enabling GPU Acceleration from Java
Abstract:
Project Babylon is a new OpenJDK initiative to extend Java’s reflection APIs that
allow reflection of Java code. This project enables developers to reflect over Java
methods and lambdas, obtain their symbolic representations (code models), and
query or transform them at runtime. With code models, developers can modify code,
apply optimizations, and translate Java into other programming models without
relying on third‑party libraries.
A key exploration area in Babylon is GPU enablement via HAT (Heterogeneous
Accelerator Toolkit), which targets CUDA and OpenCL environments. In this talk, we
will dive into Babylon’s core abstractions for inspecting and manipulating Java code
at runtime, then demonstrate how code reflection can be used to offload parallel
workloads to GPUs and enabling more efficient and hardware-accelerated
executions directly from Java.
Bio:
Juan Fumero is a Software Developer at Oracle working at the Java Platform Group.
His expertise relies on the interaction of managed runtime programming
environments and hardware accelerators, focusing on Just-In-Time compilation,
runtime optimisations and API design for programming Graphics Processing Units
(GPUs).
Before joining Oracle, he was a Research Fellow at The University of Manchester,
where he focused on accelerating Java data parallel applications on modern
hardware like GPUs and FPGAs. Notably, he led the development of the TornadoVM
project. Furthermore, he has worked on multiple EU projects, such as AERO, and
E2Data, and collaborated with Intel to integrate Intel Level Zero and oneAPI into the
TornadoVM compilation stack.
He holds a PhD from The University of Edinburgh, where his research focused on
accelerating interpreted programming languages (like Java, R, and Ruby) on GPUs
via JIT compilation and runtime optimisations.
Earlier in his career, he interned at both CERN and Oracle Labs. Moreover, Juan is
highly active in the tech community, frequently speaking at conferences (such as
QCon, Devoxx, and JVMLS). He is also an Intel oneAPI Innovator and participates in
several standardization groups, including the RISC-V J Extension Group.