Under the HAT: Empowering GPU Acceleration for Java
summary
HAT uses the Babylon core reflection API to extract Java code models, transform them to a GPU dialect and emit CUDA/OpenCL, plus a runtime that auto-manages generated kernels and data movement. Demos show a FlashAttention port hitting ~60× speedup versus Java sequential and FP16 paths under 10 ms, and tuned matrix multiply reaching multi‑teraflop rates (up to ~14 TFLOPS in one measurement, ~60% of cuBLAS on comparable settings). Features include pluggable backends, mappable user types, shared‑memory tiling and register tiling, and the system works end‑to‑end.
AI-written summary · about
chapters (14)
- 0:00GPU acceleration for Java
- 1:05Core reflection and Babylon
- 6:38Supporting GPUs with Project Panama
- 9:51Challenges running Java on GPUs
- 14:03HAT introduction and model
- 18:37HAT vector multiplication
- 27:28HAT code execution in JVM
- 28:34GPU memory hierarchy in HAT
- 31:20Demo: Flash Attention with HAT
- 35:16HAT dialect for GPU code
- 39:06Value of HAT for Java
- 39:50Case study: Data structure performance
- 43:51Case study: Matrix multiplication vs cuBLAS
- 49:51Conclusions and future
related talks
46mHeterogeneous Accelerator Toolkit (HAT) Update
40mJava GPGPU Enablement: Are We There Yet?
47mJava and GPU … are we nearly there yet?
51mJava on the GPU Where are we now?
43mFrom CPU to GPU and FPGAs: Supercharging Java Applications with TornadoVM
49mMassive Parallelism with GPUs in Java
44mWrite Once, Accelerate Everywhere: GPU-Ready Java with TornadoVM
51mTornadoVM: Transparent Hardware Acceleration for Java…and Beyond!
