Skip to content

Releases: beehive-lab/TornadoVM

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

TornadoVM 1.1.0

31 Mar 07:53
488b821

Choose a tag to compare

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

v1.0.10...v1.1.0

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

31 Jan 09:00
7ad77ea

Choose a tag to compare

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 HalfFloat for 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

v1.0.9...v1.0.10

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

20 Dec 08:30
a3b87c7

Choose a tag to compare

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 tornado launcher 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_INFINITY and Float.NEGATIVE_INFINITIVE constants 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::getAllDevices thread-safe: link
  • Check size elements for memory segments: link

Full Changelog

v1.0.8...v1.0.9

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

30 Sep 11:12
c4a6c6b

Choose a tag to compare

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

v1.0.7...v1.0.8

Docs

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

How to build

./bin/tornadovm-installer --jdk jdk21 --backend=opencl,spirv,ptx