Skip to content

Releases: beehive-lab/TornadoVM

TornadoVM 4.0.1-jdk25

29 Apr 08:46
8cce318

Choose a tag to compare


29/04/26

Bug Fixes

  • #831: [fix] F16 miscompilation for Metal, PTX, SPIR-V backends with JDK 25

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 25 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk25/tornadovm-4.0.0-jdk25-opencl-linux-amd64.zip
unzip tornadovm-4.0.1-jdk25-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.1-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk25/tornadovm-4.0.0-jdk25-opencl-mac-aarch64.zip
unzip tornadovm-4.0.1-jdk25-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.1-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-4.0.1-jdk25-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk25/tornadovm-4.0.1-jdk25-opencl-windows-amd64.zip
tar -xf tornadovm-4.0.1-jdk25-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-4.0.1-jdk25-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 4.0.1-jdk21

29 Apr 08:40
1267807

Choose a tag to compare

29/04/26

Compatibility

  • #832: Adopt jdk21 version suffix on develop and update release workflows
  • #827: Bump org.apache.logging.log4j:log4j-core from 2.25.3 to 2.25.4

Bug Fixes

  • #831: [fix] F16 miscompilation for Metal, PTX, SPIR-V backends with JDK 25
  • #830: [fix] Fix F16 miscompilation in PTX and Metal backends
  • #829: [fix] Backport jdk25 OCL plugin fixes: 64-bit address arithmetic, node insertion, and atomics

Other Changes

  • #823: Update SDKMAN! versions for backend options
  • #825: [feat] Add workflow to automatically create mirroring PRs for JDK25
  • #824: Update master

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk21/tornadovm-4.0.1-jdk21-opencl-linux-amd64.zip
unzip tornadovm-4.0.1-jdk21-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.1-jdk21-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk21/tornadovm-4.0.1-jdk21-opencl-mac-aarch64.zip
unzip tornadovm-4.0.1-jdk21-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.1-jdk21-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-4.0.1-jdk21-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.1-jdk21/tornadovm-4.0.1-jdk21-opencl-windows-amd64.zip
tar -xf tornadovm-4.0.1-jdk21-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-4.0.1-jdk21-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 4.0.0-jdk25

02 Apr 12:43
3931cd5

Choose a tag to compare


02/04/26

This release for JDK25 support, is synced with 4.0.0-jdk21.

Improvements

  • Add Apple Metal backend to run natively on Apple Silicon
  • Add SIMD Shuffle/Reduction Support to PTX Backend
  • Add support for CUDA Graphs to replay bytecodes to reduce dispatch overhead

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 25 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk25/tornadovm-4.0.0-jdk25-opencl-linux-amd64.zip
unzip tornadovm-4.0.0-jdk25-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.0-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk25/tornadovm-4.0.0-jdk25-opencl-mac-aarch64.zip
unzip tornadovm-4.0.0-jdk25-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.0-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-4.0.0-jdk25-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk25/tornadovm-4.0.0-jdk25-opencl-windows-amd64.zip
tar -xf tornadovm-4.0.0-jdk25-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-4.0.0-jdk25-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 4.0.0-jdk21

02 Apr 13:22
8b5c1a3

Choose a tag to compare

02/04/26

Improvements

  • #796: [JDK21] Add Apple Metal backend to run natively on Apple Silicon
  • #813: Add SIMD Shuffle/Reduction Support to PTX Backend
  • #811: Add support for CUDA Graphs to replay bytecodes to reduce dispatch overhead

Bug Fixes

  • #817: [hotfix] Fix double-deletion of PiNode when multiple OffsetAddressNodes share the same PiNode

Other Changes

  • #814: [docs] Update readme to inlcude metal
  • #819: Sync master with develop
  • #818: [fix] Make cmake to always set CMAKE_OSX_SYSROOT explicitly
  • #808: Add TornadoVM developer skill (build, test, debug, Java 21+ idioms) for Claude
  • #807: Post release minor fixes for mvn deploy and readme budges

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk21/tornadovm-4.0.0-jdk21-opencl-linux-amd64.zip
unzip tornadovm-4.0.0-jdk21-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.0-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk21/tornadovm-4.0.0-jdk21-opencl-mac-aarch64.zip
unzip tornadovm-4.0.0-jdk21-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-4.0.0-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-4.0.0-jdk21-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v4.0.0-jdk21/tornadovm-4.0.0-jdk21-opencl-windows-amd64.zip
tar -xf tornadovm-4.0.0-jdk21-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-4.0.0-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 3.0.0-jdk25

24 Feb 12:04
e3d166a

Choose a tag to compare

24/02/26

Other Changes

  • #799: Add JDK 25.0.2 release automation workflows

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 25 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0-jdk25/tornadovm-3.0.0-jdk25-opencl-linux-amd64.zip
unzip tornadovm-3.0.0-jdk25-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-3.0.0-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0-jdk25/tornadovm-3.0.0-jdk25-opencl-mac-aarch64.zip
unzip tornadovm-3.0.0-jdk25-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-3.0.0-jdk25-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-3.0.0-jdk25-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0-jdk25/tornadovm-3.0.0-jdk25-opencl-windows-amd64.zip
tar -xf tornadovm-3.0.0-jdk25-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-3.0.0-jdk25-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 3.0.0-jdk21

24 Feb 11:43
90c50d3

Choose a tag to compare

24/02/26

Improvements

  • #790: [feat] Move --intellijinit from CLI to developer-only Makefile target with dynamic backend selection

Compatibility

  • #804: Refactor GH actions to split JDK21 and JDK25 testing, packaging and deployment
  • #777: Bump org.apache.logging.log4j:log4j-core from 2.17.1 to 2.25.3
  • #775: [docs] Revise TornadoVM installation instructions
  • #776: [feat] Add new action to push default tornadovm version

Bug Fixes

  • #785: [fix] Added scripts in dist directory to resolve issue with intellijinit

Other Changes

  • #803: Whitelist `TestInheritedFields` for non-OpenCL backends
  • #802: [fix] Handle Windows CRLF line endings in virtual device tests and native tests & Update Makefile.mak
  • #801: Add GitHub workflows for JDK 25 build, deployment, and release prepar…
  • #799: Add JDK 25.0.2 release automation workflows
  • #787: [refactor] Prepare compiler and API infrastructure for Jdk25 migration
  • #781: Fix OCLFieldBuffer to include inherited instance fields

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0/tornadovm-3.0.0-opencl-linux-amd64.zip
unzip tornadovm-3.0.0-opencl-linux-amd64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-3.0.0-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0/tornadovm-3.0.0-opencl-mac-aarch64.zip
unzip tornadovm-3.0.0-opencl-mac-aarch64.zip
export TORNADOVM_HOME="$(pwd)/tornadovm-3.0.0-opencl"
export PATH=$TORNADOVM_HOME/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-3.0.0-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v3.0.0/tornadovm-3.0.0-opencl-windows-amd64.zip
tar -xf tornadovm-3.0.0-opencl-windows-amd64.zip
set TORNADOVM_HOME=%cd%\tornadovm-3.0.0-opencl
set PATH=%TORNADOVM_HOME%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 2.2.0

17 Dec 15:10
48a0e22

Choose a tag to compare


17/12/25

Improvements

  • #765: Add cross-platform SDK compatibility checks and fix launcher issues
  • #713: [ptx] Support for CUDA JIT compiler flags

Compatibility

  • #764: [cicd] Prevent workflows from running on forks

Other Changes

  • #773: [build] Replace TORNADO_SDK with TORNADOVM_HOME
  • #772: [docs] Refactor license table in README.md for clarity and conciseness
  • #771: [CI] Publish archives to sdkman action
  • #769: Update README.md for TornadoVM version 2.1.0 for SDKs

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.2.0/tornadovm-2.2.0-opencl-linux-amd64.zip
unzip tornadovm-2.2.0-opencl-linux-amd64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.2.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.2.0/tornadovm-2.2.0-opencl-mac-aarch64.zip
unzip tornadovm-2.2.0-opencl-mac-aarch64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.2.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-2.2.0-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v2.2.0/tornadovm-2.2.0-opencl-windows-amd64.zip
tar -xf tornadovm-2.2.0-opencl-windows-amd64.zip
set TORNADO_SDK=%cd%\tornadovm-2.2.0-opencl
set PATH=%TORNADO_SDK%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 2.1.0

09 Dec 12:27
4ff0bda

Choose a tag to compare


09/12/25

Improvements

  • #754: Support to express Q8_0 tensors as Tornado ByteArray

Compatibility

  • #756: [CI] Add night workflow to build and test all supported JDKs (Zulu, OpenJDK, GraalVM, Corretto, Mandrel etc) on Linux x64 runner
  • #755: [docs] Refining README and simplifying instructions

Bug Fixes

  • #753: [hotfix] Fix Conversion Error from FP16 to FP32

Other Changes

  • #752: Update POM files: bump parent version to `2.0.1-dev` across all modules
  • #758: [CI] Pre and post release workflows to automate release deployments

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.1.0/tornadovm-2.1.0-opencl-linux-amd64.zip
unzip tornadovm-2.1.0-opencl-linux-amd64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.1.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.1.0/tornadovm-2.1.0-opencl-mac-aarch64.zip
unzip tornadovm-2.1.0-opencl-mac-aarch64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.1.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-2.1.0-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v2.1.0/tornadovm-2.1.0-opencl-windows-amd64.zip
tar -xf tornadovm-2.1.0-opencl-windows-amd64.zip
set TORNADO_SDK=%cd%\tornadovm-2.1.0-opencl
set PATH=%TORNADO_SDK%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 2.0.0

02 Dec 14:05

Choose a tag to compare

Improvements

#722: Simplify running tornadovm with a Java argfile
#732: [types] Support for GPU-native Int8 types for PTX and OpenCL
#736: Implement support for compressed oops (coops)
#738: [feat] Update TornadoVM to be packaged as SDK across multiple platforms
#739: [feat] Zero-copy TornadoNativeArray type instances with shallow memory segments
#740: Add support for byte and half-float arrays in local memory across all backends
#748: Support FP32 to FP16 conversion across all backends

Compatibility

#704: Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.18.0 in tornado-benchmarks
#709: Fix Python dependency installation issues in installer
#717: [feat] Added streamlit python dependency for compatibility with TornadoViz

Bug Fixes

#705: [fix] Support for ShortCircuits in OpenCL and PTX
#706: [fix] Codegen support for IntegerBelowNode & Fix of closing bracket in OpenCL
#712: [fix] Fix for Loop Partial Unroll Phase
#714: [fix] The differences CUDA 13 introduced to CUDA API cuCtxCreate
#721: [fix] Integer overflow in TornadoNativeArray implementations that caused IllegalArgumentException when allocating large arrays
#723: [fix] Prevent NullPointerException when trying to dump bytecodes during warm-up
#746: [fix] Remove @ prefix from inline Truffle export flags

Refactors & Infrastructure

#703: Updated build instructions for using a single thread for maven.
#708: [test] Mark unsupported tests for SPIRV
#711: Add mvn test configuration to ease unit-testing when porting TornadoVM to third-party projects
#716: [build-infra] Add missing checksums and script to generate checksum files for TornadoVM Maven artifacts
#720: Increase default memory size on device
#725: [refactor] Move Dynamic Reconfiguration to research features
#730: [build] Revamp build infrastructure by adding Maven wrapper mvnw
#733: Move argfile generation to python from bash
#742: [CI] Migrate build & test workflows (OpenCL, PTX, SPIR-V) to GitHub Actions for Linux (x64) and macOs(arm64)
#737: [tests] Marked Quantization Tests as whitelisted due to NVIDIA driver issues
#743: [build] Use shared export‑list files instead of verbose inline --add-exports in pom.xml
#744: Add licences in pom files - prep work for migrating release to maven central
#745: [deploy] Add release profile in maven to prepare maven central release
#747: [CI] Add deploy-maven-central workflow for deploying artifacts to Maven central
#749: [CI] Add GPG key configuration and Maven settings to deploy-maven-central

Full Changelog

v2.0.0...v1.1.1

Docs

https://tornadovm.readthedocs.io/en/v2.0.0/

How to build

Select the backend/s you want.

## You can try the interactive mode of the installer and select the backends to build with:
./bin/tornadovm-installer

How to use TornadoVM SDK

To use the TornadoVM SDK, ensure that the environment variable JAVA_HOME points to a valid JDK 21 installation. After that, select the appropriate sdk distribution for your target architecture and the accelerator backends you intend to use.

Linux Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.0.0/tornadovm-2.0.0-opencl-linux-amd64.zip
unzip tornadovm-2.0.0-opencl-linux-amd64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.0.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

macOS Systems

wget https://github.com/beehive-lab/TornadoVM/releases/download/v2.0.0/tornadovm-2.0.0-opencl-mac-aarch64.zip
unzip tornadovm-2.0.0-opencl-mac-aarch64.zip
export TORNADO_SDK="$(pwd)/tornadovm-2.0.0-opencl"
export PATH=$TORNADO_SDK/bin:$PATH
tornado --devices
tornado --version

Windows (10+) Systems

curl -L -o tornadovm-2.0.0-opencl-windows-amd64.zip https://github.com/beehive-lab/TornadoVM/releases/download/v2.0.0/tornadovm-2.0.0-opencl-windows-amd64.zip
tar -xf tornadovm-2.0.0-opencl-windows-amd64.zip
set TORNADO_SDK=%cd%\tornadovm-2.0.0-opencl
set PATH=%TORNADO_SDK%\bin;%PATH%
tornado --devices
tornado --version

TornadoVM 1.1.1

07 Jul 08:53
5f34f83

Choose a tag to compare

Improvements

#657: Optimize to reuse the allocated buffers for batch processing.
#659: Fixed object state to be the one from the last executed TaskGraph.
#660: New PERSIST bytecode to improve object lifecycle tracking.
#661: Saving the TornadoVM Bytecodes in a log file.
#660: Distinguish the data transfer mode when logging the execution of the TRANSFER_TO_DEVICE_ONCE Bytecode.
#667: Update documentation of the TornadoVM flags.
#670: Refactoring of the Matrix4x4Float type.
#674: Updated project links in README.
#675: Avoid rescheduling IfNodes used for loop-bound evaluation.
#676: Added unit-tests for Transformer Compute Kernels.
#679: Added Matrix-Vector Row-Major compute example.
#683: Mark flash attention unittest unsupported for SPIR-V.
#684: Performance improvements for processing with Dynamic Reconfiguration.
#685: Dynamic reconfiguration refactored.
#686: New API Functions for warmup.
#693: Disabling fast math to support FMA in PTX.
#695: Update tornadovm-installer script to be interactive.
#696: Increase sizes for auxiliary data structures related with the number of Tasks in a TaskGraph.
#697: Added auto-deps mode in tornadovm-installer and restored backend and jdk console arguments.
#698: Update tornadovm-installer changes in README.

Compatibility

#668: Updated build instructions for RISC-V systems.

Bug Fixes

#664: Fix kernel name in PTX with sanitizer check.
#666: Fix GridScheduler for execution plans that have multiple TaskGraphs.
#671: Fix ANSI espace characters for logging TornadoVM Bytecodes.
#677: Fix 1.0/sqrt(x) replacement with native rsqrt(x) function.
#678: Fix profiling on macOS systems, regarding accessing UPS metrics.
#681: Fix closing bracket for flash attention.
#688: Fix state after warmup phase.

Full Changelog

v1.1.0...v1.1.1

Docs

https://tornadovm.readthedocs.io/en/v1.1.1/

How to build

Select the backend/s you want.

## You can try the interactive mode of the installer and select the backends to build with:
./bin/tornadovm-installer