Skip to content

Commit

Permalink
Merge pull request #1163 from beehive-lab/release/1.0
Browse files Browse the repository at this point in the history
[Release] TornadoVM 1.0
  • Loading branch information
jjfumero authored Dec 5, 2023
2 parents 7d30bd5 + 203ed3a commit 22b0ed7
Show file tree
Hide file tree
Showing 21 changed files with 103 additions and 60 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Developers can choose which backends to install and run.

For a quick introduction please read the following [FAQ](https://tornadovm.readthedocs.io/en/latest/).

**Latest Release:** TornadoVM 0.15.2 - 26/07/2023 : See [CHANGELOG](https://tornadovm.readthedocs.io/en/latest/CHANGELOG.html).
**Latest Release:** TornadoVM 1.0 - 05/12/2023 : See [CHANGELOG](https://tornadovm.readthedocs.io/en/latest/CHANGELOG.html).

----------------------

Expand Down Expand Up @@ -222,12 +222,12 @@ You can import the TornadoVM API by setting this the following dependency in the
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.15.2</version>
<version>1.0</version>
</dependency>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-matrices</artifactId>
<version>0.15.2</version>
<version>1.0</version>
</dependency>
</dependencies>
```
Expand Down
4 changes: 2 additions & 2 deletions bin/tornadovm-installer
Original file line number Diff line number Diff line change
Expand Up @@ -343,10 +343,10 @@ def listSupportedJDKs():
zulu-jdk-21 : Install TornadoVM with Azul Zulu JDK 21"
Usage:
$ ./scripts/tornadovm-installer --jdk <JDK_VERSION> --backend <BACKEND>
$ ./bin/tornadovm-installer --jdk <JDK_VERSION> --backend <BACKEND>
If you want to select another version of OpenJDK, you can use --javaHome="<pathToJavaHome>" and install as follows:
$ ./scripts/tornadovm-installer --backend <BACKEND> --javaHome=<pathToJavaHome>
$ ./bin/tornadovm-installer --backend <BACKEND> --javaHome=<pathToJavaHome>
"""
)

Expand Down
104 changes: 73 additions & 31 deletions docs/source/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,53 @@ TornadoVM Changelog

This file summarizes the new features and major changes for each *TornadoVM* version.

TornadoVM 1.0
----------------
05/12/2023

Improvements
~~~~~~~~~~~~~~~~~~

- Brand-new API for allocating off-heap objects and array collections using the Panama Memory Segment API.
- New Arrays, Matrix and Vector type objects are allocated using the Panama API.
- Migration of existing applications to use the new Panama-based types: https://tornadovm.readthedocs.io/en/latest/offheap-types.html
- Handling of the TornadoVM's internal bytecode improved to avoid write-only copies from host to device.
- ``cospi`` and ``sinpi`` math operations supported for OpenCL, PTX and SPIR-V.
- Vector 16 data types supported for ``float``, ``double`` and ``int``.
- Support for Mesa's ``rusticl``.
- Device default ordering improved based on maximum thread size.
- Move all the installation and configuration scripts from Bash to Python.
- The installation process has been improved for Linux and OSx with M1/M2 chips.
- Documentation improved.
- Add profiling information for the testing scripts.


Compatibility/Integration
~~~~~~~~~~~~~~~~~~~~~~~~~

- Integration with the Graal 23.1.0 JIT Compiler.
- Integration with OpenJDK 21.
- Integration with Truffle Languages (Python, Ruby and Javascript) using Graal 23.1.0.
- TornadoVM API Refactored.
- Backport bug-fixes for branch using OpenJDK 17: ``master-jdk17``


Bug fixes:
~~~~~~~~~~~~~~~~~

- Multiple SPIR-V Devices fixed.
- Runtime Exception when no SPIR-V devices are present.
- Issue with the kernel context API when invoking multiple kernels fixed.
- MTMD mode is fixed when running multiple backends on the same device.
- ``long`` type as a constant parameter for a kernel fixed.
- FPGA Compilation and Execution fixed for AWS and Xilinx devices.
- Batch processing fixed for different data types of the same size.



TornadoVM 0.15.2
----------------
26/07/2023
26/07/2023

Improvements
~~~~~~~~~~~~~~~~~~
Expand All @@ -20,89 +62,89 @@ Improvements


Compatibility/Integration
~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~

- Initial integration with ComputeAorta (part of the Codeplay's oneAPI Construction Kit for RISC-V) to run on RISC-V with Vector Instructions (OpenCL backend) in emulation mode.
- Initial integration with ComputeAorta (part of the Codeplay's oneAPI Construction Kit for RISC-V) to run on RISC-V with Vector Instructions (OpenCL backend) in emulation mode.
- Beehive SPIR-V Toolkit dependency updated.
- Tests for prebuilt SPIR-V kernels fixed to dispatch SPIR-V binaries through the Level Zero and OpenCL runtimes.
- Deprecated ``javac.py`` script removed.
- Tests for prebuilt SPIR-V kernels fixed to dispatch SPIR-V binaries through the Level Zero and OpenCL runtimes.
- Deprecated ``javac.py`` script removed.


Bug fixes:
~~~~~~~~~~~~~~~~~

- TornadoVM OpenCL Runtime throws an exception when the detected hardware does not support FP64.
- Fix the installer for the older Apple with the x86 architecture using AMD GPUs.
- Fix the installer for the older Apple with the x86 architecture using AMD GPUs.
- Installer for ARM based systems fixed.
- Installer fixed for Microsoft WSL and NVIDIA GPUs.
- Installer fixed for Microsoft WSL and NVIDIA GPUs.
- OpenCL code generator fixed to avoid using the reserved OpenCL keywords from Java function parameters.
- Dump profiler option fixed.
- Dump profiler option fixed.



TornadoVM 0.15.1
----------------
15/05/2023
15/05/2023

Improvements
~~~~~~~~~~~~~~~~~~

- Introduction of a device selection heuristic based on the computing capabilities of devices. TornadoVM selects, as the default device, the fastest device based on its computing capability.
- Optimisation of removing redundant data copies for Read-Only and Write-Only buffers from between the host (CPU) and the device (GPU) based on the Tornado Data Flow Graph.
- Introduction of a device selection heuristic based on the computing capabilities of devices. TornadoVM selects, as the default device, the fastest device based on its computing capability.
- Optimisation of removing redundant data copies for Read-Only and Write-Only buffers from between the host (CPU) and the device (GPU) based on the Tornado Data Flow Graph.
- New installation script for TornadoVM.
- Option to dump the TornadoVM bytecodes for the unit tests.
- Option to dump the TornadoVM bytecodes for the unit tests.
- Full debug option improved. Use ``--fullDebug``.


Compatibility/Integration
~~~~~~~~~~~~~~~~~~~~~

- Integration and compatibility with the Graal 22.3.2 JIT Compiler.
- Improved compatibility with Apple M1 and Apple M2 through the OpenCL Backend.
- GraalVM/Truffle programs integration improved. Use ``--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
- Improved compatibility with Apple M1 and Apple M2 through the OpenCL Backend.
- GraalVM/Truffle programs integration improved. Use ``--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

Bug fixes:
~~~~~~~~~~~~~~~~~

- Documentation that resets the device's memory: https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TornadoExecutionPlan.java#L282
- Append the Java ``CLASSPATH`` to the ``cp`` option from the ``tornado`` script.
- Documentation that resets the device's memory: https://github.com/beehive-lab/TornadoVM/blob/master/tornado-api/src/main/java/uk/ac/manchester/tornado/api/TornadoExecutionPlan.java#L282
- Append the Java ``CLASSPATH`` to the ``cp`` option from the ``tornado`` script.
- Dependency fixed for the ``cmake-maven`` plugin fixed for ARM-64 arch.
- Fixed the automatic installation for Apple M1/M2 and ARM-64 and NVIDIA Jetson nano computing systems.
- Integration with IGV fixed. Use the ``--igv`` option for the ``tornado`` and ``tornado-test`` scripts.
- Fixed the automatic installation for Apple M1/M2 and ARM-64 and NVIDIA Jetson nano computing systems.
- Integration with IGV fixed. Use the ``--igv`` option for the ``tornado`` and ``tornado-test`` scripts.



TornadoVM 0.15
----------------
27/01/2023
27/01/2023

Improvements
~~~~~~~~~~~~~~~~~~

- 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

- 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
- 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``


Bug fixes:
~~~~~~~~~~~~~~~~~

- Vector and Matrix types
- Vector and Matrix types
- TornadoVM Floating Replacement compiler phase fixed
- Fix ``CMAKE`` for Intel ARC GPUs
- Device query tool fixed for the PTX backend
Expand Down Expand Up @@ -462,7 +504,7 @@ TornadoVM 0.7
- Support for ARM Mali GPUs.
- Support parallel reductions on FPGAs
- Agnostic FPGA vendor compilation via configuration files (Intel & Xilinx)
- Support for AWS on Xilinx FPGAs
- Support for AWS on Xilinx FPGAs
- Recompilation for different input data sizes supported
- New TornadoVM API calls:

Expand Down Expand Up @@ -538,7 +580,7 @@ TornadoVM 0.4
- Use ``-Dtornado.feature.extraction=True`` to enable code
extraction features

- Mac OSx support
- Mac OSx support
- Automatic reductions composition (map-reduce) within the same
task-schedule
- Bug related to a memory leak when running on GPUs solved
Expand Down Expand Up @@ -609,4 +651,4 @@ Tornado 0.1.0
- Initial support in the runtime to execute OpenCL programs generated
by the Tornado JIT compiler
- Initial Tornado-API release (``@Parallel`` Java annotation and ``TaskSchedule`` API)
- Multi-GPU enabled through multiple tasks-schedules
- Multi-GPU enabled through multiple tasks-schedules
5 changes: 3 additions & 2 deletions docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -848,13 +848,13 @@ To use the TornadoVM API in your projects, you can checkout our maven repository
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.15.2</version>
<version>1.0</version>
</dependency>
<dependency>
<groupId>tornado</groupId>
<artifactId>tornado-matrices</artifactId>
<version>0.15.2</version>
<version>1.0</version>
</dependency>
</dependencies>
Expand All @@ -865,6 +865,7 @@ Notice that, for running with TornadoVM, you will need either the docker images
Versions available
------------------------------------
* 1.0
* 0.15.2
* 0.15.1
* 0.15
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>tornado</groupId>
<artifactId>tornado</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
<packaging>pom</packaging>
<name>tornado</name>
<url>https://github.com/beehive-lab/tornadovm</url>
Expand Down
2 changes: 1 addition & 1 deletion tornado-annotation/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<artifactId>tornado</artifactId>
<groupId>tornado</groupId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>

<artifactId>tornado-annotation</artifactId>
Expand Down
4 changes: 2 additions & 2 deletions tornado-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<parent>
<artifactId>tornado</artifactId>
<groupId>tornado</groupId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>

<groupId>tornado</groupId>
<artifactId>tornado-api</artifactId>
<version>0.16-dev</version>
<version>1.0</version>

<name>tornado-api</name>
<url>https://tornadovm.org</url>
Expand Down
2 changes: 1 addition & 1 deletion tornado-assembly/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-assembly</artifactId>
<packaging>pom</packaging>
Expand Down
4 changes: 2 additions & 2 deletions tornado-benchmarks/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>tornado</groupId>
<artifactId>tornado</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>

<artifactId>tornado-benchmarks</artifactId>
Expand Down
4 changes: 2 additions & 2 deletions tornado-drivers/drivers-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado-drivers</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<name>tornado-drivers-common</name>
<artifactId>tornado-drivers-common</artifactId>

</project>
</project>
2 changes: 1 addition & 1 deletion tornado-drivers/opencl-jni/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado-drivers</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers-opencl-jni</artifactId>
<name>tornado-drivers-opencl-jni</name>
Expand Down
2 changes: 1 addition & 1 deletion tornado-drivers/opencl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado-drivers</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers-opencl</artifactId>
<name>tornado-drivers-opencl</name>
Expand Down
2 changes: 1 addition & 1 deletion tornado-drivers/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers</artifactId>
<name>tornado-drivers</name>
Expand Down
4 changes: 2 additions & 2 deletions tornado-drivers/ptx-jni/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado-drivers</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers-ptx-jni</artifactId>
<name>tornado-drivers-ptx-jni</name>
Expand Down Expand Up @@ -126,4 +126,4 @@
</plugins>

</build>
</project>
</project>
4 changes: 2 additions & 2 deletions tornado-drivers/ptx/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<artifactId>tornado-drivers</artifactId>
<groupId>tornado</groupId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers-ptx</artifactId>
<name>tornado-drivers-ptx</name>
Expand All @@ -26,4 +26,4 @@
</dependency>
</dependencies>

</project>
</project>
2 changes: 1 addition & 1 deletion tornado-drivers/spirv-levelzero-jni/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>tornado</groupId>
<artifactId>tornado-drivers</artifactId>
<version>0.16-dev</version>
<version>1.0</version>
</parent>
<artifactId>tornado-drivers-spirv-levelzero-jni</artifactId>
<name>tornado-drivers-spirv-levelzero-jni</name>
Expand Down
Loading

0 comments on commit 22b0ed7

Please sign in to comment.