TornadoVM is a JDK plugin developed over 10 years at the University of Manchester that enables Java developers to run code on GPUs transparently. It supports OpenCL, CUDA, and SPIR-V backends, with Apple Metal in progress. The programming model offers two APIs: a simple loop-parallel annotation-based API and a lower-level kernel API for fine-grained GPU control. Data management leverages Project Panama's foreign memory API to avoid JVM heap/GC conflicts. A task graph abstraction handles kernel chaining and data transfer optimization. The IntelliJ plugin 'Tornado Insight' provides static analysis and debugging for GPU-targeted code. A GPU-accelerated Llama 3 implementation in pure Java demonstrates production readiness, with integrations for LangChain4J and Quarkus. TornadoVM is already in production at the European Space Agency's Gaia mission, achieving over 500x speedup on specific algorithms and reducing processing time from one month to five days.

45m watch time

Sort: