TornadoVM 7 Brings GPU Acceleration to Java With CUDA Integration

Write your Java code on a laptop, deploy it to a GPU server unchanged.
TornadoVM enables portable GPU acceleration across different hardware environments without code changes.
Mark

Why does a Java developer care about this? Isn't GPU programming already solved in other languages?

Mimi

It's about staying in the Java ecosystem. If you're building a service in Java, you don't want to drop down to C++ or Python just to use a GPU. TornadoVM lets you stay in Java and still get the performance.

Luke

But the source says it works best with data-parallel workloads. That's a specific constraint. Not every computation benefits.

Mimi

Right. If you're doing matrix math, signal processing, or neural network inference, you're in the sweet spot. Those are common enough in production systems.

Mark

What changed in version 7 that makes it better than before?

Mimi

The CUDA integration is the big one. Before, you could offload to GPUs, but now you can call Nvidia's hand-tuned libraries directly—cuBLAS, CUTLASS. You can also run across multiple GPUs at once.

Luke

The source mentions they removed the JVMCI dependency and switched to Foreign Function & Memory API. Is that just internal plumbing, or does it matter to users?

Mimi

It matters because it means the framework now works consistently across JDK versions 21 through 27. Before, there were compatibility headaches. Now it's simpler.

Mark

The Flink example sounds interesting. How does that actually work in practice?

Mimi

You write a normal SQL query. You flip a flag. The framework checks if a GPU is available and whether the query is suitable for GPU execution. If both are true, it runs on the GPU. If not, it falls back to CPU.

Luke

That's conditional acceleration, which is smart. But the source doesn't say how often that automatic detection actually works or how many queries actually qualify.

Mimi

Fair point. The framework is targeting specific patterns—loops with no dependencies, linear algebra, that kind of thing. Not every query will fit.

Mark

What about jitLLM? Is that a separate product?

Mimi

It's built on TornadoVM, but yes, it's positioned as a standalone tool for running AI models in Java. They're saying it's as fast as llama.cpp.

Luke

That's a bold claim. The source doesn't provide benchmarks to back it up, so we're taking their word for it.

  • Java has long ceded performance-critical AI and GPU workloads to C++ and Python ecosystems, and TornadoVM 7 arrives as a direct challenge to that assumption.
  • The shift from JNI to the Foreign Function & Memory API removes a longstanding source of instability, while dropping the JVM Compiler Interface dependency makes the framework far more portable across JDK versions 21 through 27.
  • A deeply integrated CUDA backend now exposes Nvidia's cuBLAS and CUTLASS libraries directly within TornadoVM's task model, and multi-GPU execution unlocks the scale needed for serious machine learning workloads.
  • The companion jitLLM v2.0 — a single-JAR AI inference engine — positions Java as a viable alternative to llama.cpp for running large language models locally, a claim that will face immediate scrutiny from the performance community.
  • Commercialization through Beestream.ai signals the project's transition from academic research to market product, raising both the stakes and the visibility of everything TornadoVM promises.

For decades, Java's promise of portability coexisted uneasily with the raw performance demands of modern computing — a tension that GPU acceleration has only sharpened. TornadoVM 7, released in late 2026, attempts to resolve this friction by allowing Java code to run on GPUs and multi-core processors without abandoning the JVM or its ecosystem, extending the old 'write once, run anywhere' covenant into the age of machine learning and accelerated hardware. The release marks not merely a technical milestone but a philosophical one: the moment a mature, academically rooted open-source project steps into commercial territory, betting that Java can compete with C++ and Go for the future of AI inference.

TornadoVM is an open-source framework that sits alongside existing Java virtual machines — OpenJDK, GraalVM, Temurin, Zulu — rather than replacing them, offloading computationally intensive work to GPUs and multi-core processors while managing memory transfers between the Java heap and the accelerator. Its core appeal is portability: write an application on a laptop with whatever hardware is available, deploy it to a server with Nvidia GPUs, and gain performance without rewriting the code. Version 7.3 substantially reshapes how that promise is delivered.

The architectural changes are meaningful. TornadoVM has replaced the Java Native Interface with the Foreign Function & Memory API, a cleaner and more stable standard for calling native code from Java, and has removed its experimental dependency on the JVM Compiler Interface in favor of a unified reflection, ASM, and Unsafe layer. The result is a more consistent foundation across supported JDK versions. More visibly, the release introduces a deeply optimized CUDA backend that gives developers direct access to Nvidia libraries like cuBLAS and CUTLASS from within TornadoVM's TaskGraphs, adds support for Nvidia's cuTile model through a new TileContext, and enables multi-GPU execution for large-scale workloads.

Not all Java code benefits equally. The framework targets data-parallel workloads — loops whose iterations carry no mutual dependencies and can therefore spread across thousands of GPU cores simultaneously. Linear algebra, Fast Fourier Transforms, deep neural networks, and sparse matrix operations are natural fits. Integrations with Quarkus, Apache Flink, Spring AI, and Lang4j extend this reach, and a Flink integration demonstrates the practical elegance: a developer writes a standard SQL query, sets a configuration flag, and the framework automatically detects at runtime whether a GPU is present and whether the computation is suitable for acceleration.

Alongside the framework release, the team unveiled jitLLM v2.0, a Java-based AI inference engine built on TornadoVM and positioned as a performance competitor to llama.cpp and Ollama. Distributed as a single JAR file, it lowers the barrier for Java developers entering the local AI inference space. Both projects are now being commercialized through Beestream.ai, a company founded by the TornadoVM team — a signal that what began as academic research has arrived, with deliberate intent, at the market.

TornadoVM, an open-source framework that lets Java developers run code on GPUs and multi-core processors, has reached version 7.3—a release that substantially reshapes how the project connects Java to the accelerated computing world. The framework sits alongside existing Java virtual machines rather than replacing them, working with any mainstream JDK distribution including OpenJDK, GraalVM, Temurin, or Zulu to offload computationally intensive tasks to hardware accelerators while managing memory transfers between the Java heap and the GPU.

The core appeal is practical: write your Java application on a laptop using whatever GPU or processor you have available, then deploy that same code to a server equipped with Nvidia GPUs and watch performance jump. This portability—a modern take on Java's "write once, run anywhere" promise—makes TornadoVM particularly valuable for machine learning and cloud workloads where developers need flexibility across different hardware environments.

Version 7 introduces several architectural shifts that make this easier to achieve. The framework has moved away from the Java Native Interface (JNI) in favor of the Foreign Function & Memory API, a newer standard for calling native code from Java. It has also removed its experimental dependency on the JVM Compiler Interface, instead sourcing compiler metadata through a unified reflection, ASM, and Unsafe layer that works consistently across supported JDK versions 21, 25, 26, and 27. These changes simplify the technical foundation and reduce friction for developers working across different Java distributions.

The most significant addition is a deeply optimized CUDA backend that opens direct access to Nvidia's ecosystem. Developers can now call CUDA libraries like cuBLAS and CUTLASS directly from within TornadoVM's TaskGraphs—the programming model that describes which computations to accelerate. The release also introduces support for Nvidia's cuTile programming model through a new TileContext, and adds equivalent functionality for Apple's Metal eXtreme Learning library. Multi-GPU execution, a critical capability for large-scale workloads, is now supported.

Not all Java code benefits from GPU acceleration. The framework works best with data-parallel workloads—loops where iterations have no dependencies on each other and can therefore run in parallel across thousands of GPU cores. Linear algebra operations, Fast Fourier Transforms, deep neural networks, and sparse matrix multiplication are natural candidates. To make these accessible, TornadoVM integrates with libraries and frameworks including Quarkus, Lang4j, Apache Flink, and Spring AI, and is distributed through SDKMan.

The Flink integration illustrates the practical workflow. A developer writes a standard SQL query using Flink's Table API as normal. A configuration flag signals that the query might benefit from GPU acceleration. When the query reaches the task manager, the framework checks whether a GPU is available on that node. If one is, it analyzes the query's intermediate representation to determine whether the computation is actually suitable for GPU execution. This automatic detection removes the burden of manual optimization decisions.

TornadoVM offers four distinct programming approaches for Nvidia GPUs. The simplest is a parallel API—just an annotation on a loop that hints to the compiler that parallelization is possible. This proved insufficient for production performance demands, so the team added the kernel context API and the TileContext, giving developers finer control when they need it. The variety of APIs reflects a maturation process: the framework has learned what developers actually need to achieve real performance gains.

Alongside the 7.3 release, the TornadoVM team unveiled jitLLM v2.0, a Java-based AI inference engine built on top of TornadoVM. The team positions it as a performance competitor to llama.cpp and Ollama, the popular C++ and Go tools for running large language models locally. jitLLM ships as a single JAR file, making it accessible to any Java developer. Both TornadoVM and jitLLM are being commercialized through Beestream.ai, a company founded by the TornadoVM team, signaling that the project has moved beyond academic research into the market.

TornadoVM automatically accelerates Java programs on multi-core CPUs and GPUs, offloading code to hardware backends and managing memory between the Java heap and accelerators.
— TornadoVM team
The goal of recent TornadoVM versions is to produce an idiomatic JVM environment for accessing libraries that Nvidia has tuned for different hardware platforms, enabling Java developers to tap into linear algebra, Fast Fourier Transforms, deep neural networks, and hand-optimized matrix multiplication.
— TornadoVM team
Contact Us FAQ