Releases: beehive-lab/TornadoVM
TornadoVM 3.0.0-jdk25
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 --versionmacOS 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 --versionWindows (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 --versionTornadoVM 3.0.0-jdk21
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 --versionmacOS 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 --versionWindows (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 --versionTornadoVM 2.2.0
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 --versionmacOS 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 --versionWindows (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 --versionTornadoVM 2.1.0
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 --versionmacOS 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 --versionWindows (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 --versionTornadoVM 2.0.0
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
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-installerHow 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 --versionmacOS 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 --versionWindows (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 --versionTornadoVM 1.1.1
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
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-installerTornadoVM 1.1.0
Improvements
#620: Support of computation with mixed precision FP16 to FP32 for matrix operations.
#622: New API to allow buffer mapping between two different buffers on the hardware accelerator.
#624: Enhanced TornadoVM profiler with correct information for the UNDER_DEMAND transfer to host data.
#627: New feature to persist data on the hardware accelerator, and consume data already allocated on the hardware accelerator.
#630: Support for atomics using the kernel API for OpenCL and PTX backends.
#636: TornadoVM bytecode logging improved.
#642: Math functions extended: acosh and asinh supported for OpenCL and SPIR-V.
#645: Memory deallocations improved. Action by default when closing the TornadoExecutionPlan resource.
Compatibility
#625: Documentation to build on RISC-V updated.
#632: Add maven build with Single thread.
#633: Add tests for running multiple task graphs with different grid schedulers.
#638: Add tests to check force copy in buffers and persist buffers on the hardware accelerator.
#640: Rename XPUFuffer to FieldBuffer for all backends.
#649: Update the fast mode to live mode for testing.
#654: Add loop condition test in white list.
Bug Fixes
#626: Fix data accessors when using the UNDER_DEMAND transfer to host innovation from the task-graph.
#628: Device filtering API fixed to use device type and device names.
#635: Update nodes for local memory to be subtype of ValueNode instead of ConstantNode in the TornadoVM IR.
#639: Fix subgraph execution when combining with the GridScheduler.
#644: Fix TornadoVM execution frame setter.
#646: Fix shared memory buffers across task-graphs when no new allocation is present as new parameters for the following task-graphs.
#647: Fix UNDER_DEMAND invocation for the batch processor mode and read-write arrays.
#651: Fix memory mapping regions for the PTX Backend.
#653: Object repetition with shared buffers on ON_DEVICE bytecodes.
Full Changelog
Docs
https://tornadovm.readthedocs.io/en/v1.1.0/
How to build
Select the backend/s you want.
## To enable all backends
./bin/tornadovm-installer --jdk jdk21 --backend=opencl,spirv,ptx
## To enable just OpenCL
./bin/tornadovm-installer --jdk jdk21 --backend=opencl
## To enable just OpenCL and SPIRV
./bin/tornadovm-installer --jdk jdk21 --backend=opencl, spirv
# etc.TornadoVM 1.0.10
Improvements
- #608: Selective execution with multiple SPIR-V runtimes (either OpenCL, Intel Level Zero, or both) to unlock execution on RISC-V systems.
- #611: Support of
HalfFloatfor Matrix Types (FP16->FP16).
Compatibility
- #607: WSL installation and configuration updated for WSL Ubuntu 24 LTS and Windows 11.
- #609: Documentation and patch for RISC-V64 updated.
- #610: Maven dependency updated
- #612: Re-enable colours in maven builds on Linux.
Bug Fixes
- #606: Fix data sizes in benchmark suite.
- #613: Fix code formatter.
- #614: Fix flags for the benchmark pipeline in Jenkins.
- #615: Fix code style based on the formatter.
- #616: Fix atomics for the Kernel API and the OpenCL backend.
Full Changelog
Docs
https://tornadovm.readthedocs.io/en/v1.0.10/
How to build
Select the backend/s you want.
## To enable all backends
./bin/tornadovm-installer --jdk jdk21 --backend=opencl,spirv,ptx
## To enable just OpenCL
./bin/tornadovm-installer --jdk jdk21 --backend=opencl
## To enable just OpenCL and SPIRV
./bin/tornadovm-installer --jdk jdk21 --backend=opencl, spirv
# etc.TornadoVM 1.0.9
Improvements
- #573: Enhanced output of unit-tests with a summary of pass-rates and fail-rates.
- #576: Extended support for 3D matrices.
- #580: Extended debug information for execution plans.
- #584: Added helper menu for the
tornadolauncher script when no arguments are passed. - #589: Enable partial loop unrolling for all backends.
- #594: Added RISC-V 64 CPU port support to run OpenCL with vector instructions RVV 1.0 (using the Codeplay OCK Toolkit).
- #598: OpenCL low-level buffers tagged as read, write and read/write based on the data dependency analysis.
- #601: Feature to select an immutable task graph to execute from a multi-task graph execution plan.
Compatibility
- #570: Extended timeout for all suite of unit-tests.
- #579: Removed legacy JDK 8 and JDK11 build options from the TornadoVM installer.
- #582: Restored tornado runner scripts for IntellIJ.
- #583: Automatic generation of IDE IntelliJ configuration runner files from the TornadoVM command.
- #597: Updated white-list of unit-test and checkstyle improved.
Bug Fixes
- #571: Fix issues with bracket closing for if/loops conditions.
- #572: Fix for printing default execution plans (execution plans with default parameters).
- #575: Fix the Level Zero version used for building the SPIR-V backend.
- #577: Fix checkstyle.
- #587: Fix thread scheduler for new NVIDIA Drivers.
- #592: Fix
Float.POSITIVE_INFINITYandFloat.NEGATIVE_INFINITIVEconstants for the OpenCL, CUDA and SPIR-V backends. - #596: Fix extra closing bracket during the code-generation for the FPGAs.
- Remove the intermediate CUDA pinned memory regions in the JNI code: link
- Fix bitwise negation operations for the PTX backend: link
GetBackendImpl::getAllDevicesthread-safe: link- Check size elements for memory segments: link
Full Changelog
Docs
https://tornadovm.readthedocs.io/en/v1.0.9/
How to build
Select the backend/s you want.
## To enable all backends
./bin/tornadovm-installer --jdk jdk21 --backend=opencl,spirv,ptx
## To enable just OpenCL
./bin/tornadovm-installer --jdk jdk21 --backend=opencl
## To enable just OpenCL and SPIRV
./bin/tornadovm-installer --jdk jdk21 --backend=opencl, spirv
# etc.TornadoVM 1.0.8
Improvements
- #565: New API call in the Execution Plan to log/trace the executed configuration plans.
- #563: Expand the TornadoVM profiler with Level Zero Sysman Energy Metrics.
- #559: Refactoring Power Metric handlers for PTX and OpenCL.
- #548: Benchmarking improvements.
- #549: Prebuilt API tests added using multiple backend-setup.
- Add internal tests for monitoring memory management link.
Compatibility
- #561: Build for OSx 14.6 and OSx 15 fixed.
Bug Fixes
- #564: Jenkins configuration fixed to run KFusion per backend.
- #562: Warmup action from the Execution Plan fixed to run with correct internal IDs.
- #557: Shared Execution Plans Context fixed.
- #553: OpenCL compiler flags for Intel Integrated GPUs fixed.
- #552: Fixed runtime to select any device among multiple SPIR-V devices.
- Fixed zero extend arithmetic operations: link.
Full Changelog
Docs
https://tornadovm.readthedocs.io/en/v1.0.8/
How to build
./bin/tornadovm-installer --jdk jdk21 --backend=opencl,spirv,ptx