TornadoVM: A practical and efficient heterogeneous programming framework for managed languages
#369 : Introduction of Tensor types in TornadoVM API and interoperability with ONNX Runtime.
#370 : Array concatenation operation for TornadoVM native arrays.
#371 : TornadoVM installer script ported for Windows 10/11.
#372 : Add support for HalfFloat
(Float16
) in vector types.
#374 : Support for TornadoVM array concatenations from the constructor-level.
#375 : Support for TornadoVM native arrays using slices from the Panama API.
#376 : Support for lazy copy-outs in the batch processing mode.
#377 : Expand the TornadoVM profiler with power metrics for NVIDIA GPUs (OpenCL and PTX backends).
#384 : Auto-closable Execution Plans for automatic memory management.
#386 : OpenJDK 17 support removed. #390 : SapMachine OpenJDK 21 supported. #395 : OpenJDK 22 and GraalVM 22.0.1 supported.
#367 : Fix for Graal/Truffle languages in which some Java modules were not visible.
#373 : Fix for data copies of the HalfFloat
types for all backends.
#378 : Fix free memory markers when running multi-thread execution plans.
#379 : Refactoring package of vector api unit-tests.
#380 : Fix event list sizes to accommodate profiling of large applications.
#385 : Fix code check style.
#387 : Fix TornadoVM internal events in OpenCL, SPIR-V and PTX for running multi-threaded execution plans.
#388 : Fix of expected and actual values of tests.
#392 : Fix installer for using existing JDKs.
#389 : Fix DataObjectState
for multi-thread execution plans.
#396 : Fix JNI code for the CUDA NVML library access with OpenCL.
https://tornadovm.readthedocs.io/en/v1.0.4/
./bin/tornadovm-installer --listJDKs
TornadoVM Installer - Select a JDK implementation to install with TornadoVM:
jdk21 : Install TornadoVM with OpenJDK 21 (Oracle OpenJDK)
graal-jdk-21 : Install TornadoVM with GraalVM and JDK 21 (GraalVM 23.1.0)
mandrel-jdk-21 : Install TornadoVM with Mandrel and JDK 21 (GraalVM 23.1.0)
corretto-jdk-21 : Install TornadoVM with Corretto JDK 21
microsoft-jdk-21 : Install TornadoVM with Microsoft JDK 21
zulu-jdk-21 : Install TornadoVM with Azul Zulu JDK 21
temurin-jdk-21 : Install TornadoVM with Eclipse Temurin JDK 21
sapmachine-jdk-21 : Install TornadoVM with SapMachine OpenJDK 21
Usage:
$ ./bin/tornadovm-installer --jdk <JDK_VERSION> --backend <BACKEND>
Example:
$ ./bin/tornadovm-installer --jdk jdk21 --backend=spirv,opencl
If you want to select another version of OpenJDK, you can use --javaHome <pathToJavaHome> and install as follows:
$ ./bin/tornadovm-installer --backend <BACKEND> --javaHome <pathToJavaHome>
27/03/2024
TornadoExecutionPlan
.29/02/2024
threadInfo
and printKernel
from the Execution Plan API.MatrixVectorFloat4
type fixed30/01/2024
https://github.com/beehive-lab/TornadoVM/pull/305: Under-demand data transfer for custom data ranges.
https://github.com/beehive-lab/TornadoVM/pull/313: Initial support for Half-Precision (FP16) data types.
https://github.com/beehive-lab/TornadoVM/pull/315: Math Ceil
function added.
https://github.com/beehive-lab/TornadoVM/pull/311: Enable Multi-Task Multiple Device (MTMD) model from the TornadoExecutionPlan
API.
https://github.com/beehive-lab/TornadoVM/pull/294: Separation of the OpenCL Headers from the code base. https://github.com/beehive-lab/TornadoVM/pull/297: Separation of the LevelZero JNI API in a separate repository. https://github.com/beehive-lab/TornadoVM/pull/301: Temurin configuration supported. https://github.com/beehive-lab/TornadoVM/pull/304: Refactor of the common phases for the JIT compiler. https://github.com/beehive-lab/TornadoVM/pull/316: Beehive SPIR-V Toolkit version updated.
https://github.com/beehive-lab/TornadoVM/pull/298: OpenCL Codegen fixed open-close brackets. https://github.com/beehive-lab/TornadoVM/pull/300: Python Dependencies fixed for AWS. https://github.com/beehive-lab/TornadoVM/pull/308: Runtime checks for Grid-Scheduler names. https://github.com/beehive-lab/TornadoVM/pull/309: Fix check-style to support STR templates. https://github.com/beehive-lab/TornadoVM/pull/314: emit Vector16 Capability for 16-width vectors.
05/12/2023
cospi
and sinpi
math operations supported for OpenCL, PTX and SPIR-V.float
, double
and int
.rusticl
.master-jdk17
long
type as a constant parameter for a kernel fixed.Date: 26/07/2023
radian
, cospi
and sinpi
functions for the OpenCL/PTX and SPIR-V backends.javac.py
script removed.Date: 15/05/2023
--fullDebug
.--truffle
in the tornado
script to run guest programs with Truffle.
Example: tornado --truffle python myProgram.py
Full documentation: https://tornadovm.readthedocs.io/en/latest/truffle-languages.html
CLASSPATH
to the cp
option from the tornado
script.cmake-maven
plugin fixed for ARM-64 arch.--igv
option for the tornado
and tornado-test
scripts.To obtain the TornadoVM API from maven dependencies, you need to include the following dependency in your pom file. Note that, for running the TornadoVM application, you either need: a) TornadoVM SDK Binaries; b) a full installation of the TornadoVM; or c) a docker instance of TornadoVM.
<repositories>
<repository>
<id>universityOfManchester-graal</id>
<url>https://raw.githubusercontent.com/beehive-lab/tornado/maven-tornadovm</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.15.1</version>
</dependency>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-matrices</artifactId>
<version>0.15.1</version>
</dependency>
</dependencies>
New TornadoVM API:
API refactoring (TaskSchedule
has been renamed to TaskGraph
)
Introduction of the Immutable TaskGraphs
Introduction of the TornadoVM Execution Plans: (TornadoExecutionPlan
)
The documentation of migration of existing TornadoVM applications to the new API can be found here: https://tornadovm.readthedocs.io/en/latest/programming.html#migration-to-tornadovm-v0-15
Launch a new website https://tornadovm.readthedocs.io/en/latest/ for the documentation
Improved documentation
Initial support for Intel ARC discrete GPUs.
Improved TornadoVM installer for Linux
ImprovedTornadoVM launch script with optional parameters
Support of large buffer allocations with Intel Level Zero. Use: tornado.spirv.levelzero.extended.memory=True
CMAKE
for Intel ARC GPUsTo obtain the TornadoVM API from maven dependencies, you need to include the following dependency in your pom file. Note that, for running the TornadoVM application, you either need: a) TornadoVM SDK Binaries; b) a full installation of the TornadoVM; or c) a docker instance of TornadoVM.
<repositories>
<repository>
<id>universityOfManchester-graal</id>
<url>https://raw.githubusercontent.com/beehive-lab/tornado/maven-tornadovm</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.15</version>
</dependency>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-matrices</artifactId>
<version>0.15</version>
</dependency>
</dependencies>
tornado --help
to check the new options and examples.TornadoVMRuntimeCI
moved to TornadoVMRutimeInterface
.To obtain the TornadoVM API from maven dependencies, you need to include the following dependency in your pom file. Note that, for running the TornadoVM application, you either need a full installation of the TornadoVM or a docker instance of TornadoVM.
<repositories>
<repository>
<id>universityOfManchester-graal</id>
<url>https://raw.githubusercontent.com/beehive-lab/tornado/maven-tornadovm</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.14.1</version>
</dependency>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-matrices</artifactId>
<version>0.14.1</version>
</dependency>
</dependencies>
15/06/2022
unlockObjectFromMemory
lockObjectInMemory
This requires the user to release memory by invoking unlockObjectFromMemory
at the task-schedule level.SIGNUM
Math Function included for all three backends.