From af3f331b567475865110b3c3c9361cc66066f964 Mon Sep 17 00:00:00 2001 From: Juan Fumero Date: Wed, 15 Jun 2022 08:29:16 +0200 Subject: [PATCH] [release] TornadoVM 0.14 CHANGELOG: 15/06/2022 New Features - New device memory management for addressing the memory allocation limitations of OpenCL and enabling pinned memory of device buffers. - The execution of task-schedules will still automatically allocate/deallocate memory every time a task-schedule is executed, unless lock/unlock functions are invoked explicitly at the task-schedule level. - One heap per device has been replaced with a device buffer per input variable. - A new API call has been added for releasing memory: `unlockObjectFromMemory` - A new API call has been added for locking objects to the device: `lockObjectInMemory` This requires the user to release memory by invoking `unlockObjectFromMemory` at the task-schedule level. - Enhanced Live Task migration by supporting multi-backend execution (PTX <-> OpenCL <-> SPIR-V). Compatibility/Integration: - Integration with the Graal 22.1.0 JIT Compiler - JDK 8 deprecated - Azul Zulu JDK supported - OpenCL 2.1 as a default target for the OpenCL Backend - Single Docker Image for Intel XPU platforms, including the SPIR-V backend (using the Intel Integrated Graphics), and OpenCL (using the Intel Integrated Graphics, Intel CPU and Intel FPGA in emulation mode). Image: https://github.com/beehive-lab/docker-tornado#intel-integrated-graphics Improvements/Bug Fixes: - `SIGNUM` Math Function included for all three backends. - SPIR-V optimizer enabled by default (3x reduce in binary size). - Extended Memory Mode enabled for the SPIR-V Backend via Level Zero. - Phi instructions fixed for the SPIR-V Backend. - SPIR-V Vector Select instructions fixed. - Duplicated IDs for Non-Inlined SPIR-V Functions fixed. - Refactoring of the TornadoVM Math Library. - FPGA Configuration files fixed. - Bitwise operations for OpenCL fixed. - Code Generation Times and Backend information are included in the profiling info. typo fixed minor change --- INSTALL.md | 5 +- README.md | 6 +-- assembly/pom.xml | 2 +- assembly/src/bin/tornadoLocalInstallMaven | 2 +- assembly/src/docs/1_INSTALL.md | 5 +- assembly/src/docs/CHANGELOG.md | 59 ++++++++++++++++++++++- assembly/src/docs/Releases.md | 1 + benchmarks/pom.xml | 2 +- drivers/drivers-common/pom.xml | 2 +- drivers/opencl-jni/pom.xml | 2 +- drivers/opencl/pom.xml | 2 +- drivers/pom.xml | 2 +- drivers/ptx-jni/pom.xml | 2 +- drivers/ptx/pom.xml | 2 +- drivers/spirv-levelzero-jni/pom.xml | 2 +- drivers/spirv/pom.xml | 2 +- examples/pom.xml | 2 +- matrices/pom.xml | 2 +- pom.xml | 2 +- runtime/pom.xml | 2 +- tornado-annotation/pom.xml | 2 +- tornado-api/pom.xml | 4 +- unittests/pom.xml | 2 +- 23 files changed, 87 insertions(+), 27 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 94abb47dc5..4f67854a53 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -310,13 +310,13 @@ To use the TornadoVM API in your projects, you can checkout our maven repository tornado tornado-api - 0.13 + 0.14 tornado tornado-matrices - 0.13 + 0.14 ``` @@ -325,6 +325,7 @@ Notice that, for running with TornadoVM, you will need either the docker images #### Versions available +* 0.14 * 0.13 * 0.12 * 0.11 diff --git a/README.md b/README.md index 647480b49a..eda64208e1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ GPUs (NVIDIA, AMD), integrated GPUs (Intel HD Graphics and ARM Mali), and FPGAs For a quick introduction please read the following [FAQ](assembly/src/docs/15_FAQ.md). -**Current Release:** TornadoVM 0.13 - 21/03/2022 : See [CHANGELOG](assembly/src/docs/CHANGELOG.md#tornadovm-0.13) +**Current Release:** TornadoVM 0.14 - 15/06/2022 : See [CHANGELOG](assembly/src/docs/CHANGELOG.md#tornadovm-0.14) Previous Releases can be found [here](assembly/src/docs/Releases.md) @@ -206,12 +206,12 @@ You can import the API and start using TornadoVM. Set this in the `pom.xml` file tornado tornado-api - 0.13 + 0.14 tornado tornado-matrices - 0.13 + 0.14 ``` diff --git a/assembly/pom.xml b/assembly/pom.xml index 3e8e33fd86..9bf950ef9b 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-assembly pom diff --git a/assembly/src/bin/tornadoLocalInstallMaven b/assembly/src/bin/tornadoLocalInstallMaven index b8af04b241..36f46a305a 100755 --- a/assembly/src/bin/tornadoLocalInstallMaven +++ b/assembly/src/bin/tornadoLocalInstallMaven @@ -29,7 +29,7 @@ cd $TORNADO_SDK cd share/java/tornado/ -TORNADOVM_VERSION="0.13" +TORNADOVM_VERSION="0.14" read -ra selected_backends < "${TORNADO_SDK}/etc/tornado.backend" diff --git a/assembly/src/docs/1_INSTALL.md b/assembly/src/docs/1_INSTALL.md index 0fb6fc1efd..d4e1874b89 100644 --- a/assembly/src/docs/1_INSTALL.md +++ b/assembly/src/docs/1_INSTALL.md @@ -308,13 +308,13 @@ To use the TornadoVM API in your projects, you can checkout our maven repository tornado tornado-api - 0.13 + 0.14 tornado tornado-matrices - 0.13 + 0.14 ``` @@ -323,6 +323,7 @@ Notice that, for running with TornadoVM, you will need either the docker images #### Versions available +* 0.14 * 0.13 * 0.12 * 0.11 diff --git a/assembly/src/docs/CHANGELOG.md b/assembly/src/docs/CHANGELOG.md index 751243ab24..1c11042beb 100644 --- a/assembly/src/docs/CHANGELOG.md +++ b/assembly/src/docs/CHANGELOG.md @@ -2,6 +2,41 @@ This file summarizes the new features and major changes for each *TornadoVM* version. +--- + +## TornadoVM 0.14 + +15/06/2022 + +### New Features +- New device memory management for addressing the memory allocation limitations of OpenCL and enabling pinned memory of device buffers. + - The execution of task-schedules will still automatically allocate/deallocate memory every time a task-schedule is executed, unless lock/unlock functions are invoked explicitly at the task-schedule level. + - One heap per device has been replaced with a device buffer per input variable. + - A new API call has been added for releasing memory: `unlockObjectFromMemory` + - A new API call has been added for locking objects to the device: `lockObjectInMemory` This requires the user to release memory by invoking `unlockObjectFromMemory` at the task-schedule level. +- Enhanced Live Task migration by supporting multi-backend execution (PTX <-> OpenCL <-> SPIR-V). + +### Compatibility/Integration +- Integration with the Graal 22.1.0 JIT Compiler +- JDK 8 deprecated +- Azul Zulu JDK supported +- OpenCL 2.1 as a default target for the OpenCL Backend +- Single Docker Image for Intel XPU platforms, including the SPIR-V backend (using the Intel Integrated Graphics), and OpenCL (using the Intel Integrated Graphics, Intel CPU and Intel FPGA in emulation mode). Image: https://github.com/beehive-lab/docker-tornado#intel-integrated-graphics + +### Improvements/Bug Fixes +- `SIGNUM` Math Function included for all three backends. +- SPIR-V optimizer enabled by default (3x reduce in binary size). +- Extended Memory Mode enabled for the SPIR-V Backend via Level Zero. +- Phi instructions fixed for the SPIR-V Backend. +- SPIR-V Vector Select instructions fixed. +- Duplicated IDs for Non-Inlined SPIR-V Functions fixed. +- Refactoring of the TornadoVM Math Library. +- FPGA Configuration files fixed. +- Bitwise operations for OpenCL fixed. +- Code Generation Times and Backend information are included in the profiling info. + +--- + ## TornadoVM 0.13 21/03/2022 @@ -33,7 +68,7 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - https://github.com/beehive-lab/TornadoVM/pull/177 - Dependencies for Math3 and Lang3 updated - +--- ## TornadoVM 0.12 @@ -54,6 +89,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - TornadoVM profiler fixed for multiple context switching (device switching) - Pretty printer for device information +--- + ## TornadoVM 0.11 29/09/2021 @@ -77,6 +114,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - Codegen for sequential kernels fixed - Function parameters with non-inlined method calls fixed +--- + ## TornadoVM 0.10 29/06/2021 @@ -97,6 +136,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - Initial support for 2D Arrays added - Several bug fixes and stability support for the OpenCL and PTX backends +--- + ## TornadoVM 0.9 15/04/2021 @@ -122,6 +163,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - Slambench fixed when compiling for PTX and OpenCL backends - Several bug fixes for the runtime, JIT compiler and data management. +--- + ## TornadoVM 0.8 19/11/2020 @@ -163,6 +206,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver - Documentation improved - Bug fixes for code generation, numeric promotion, basic block traversal, Xilinx FPGA compilation. +--- + ## TornadoVM 0.7 22/06/2020 @@ -189,6 +234,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * Documentation improved * Several bug fixes +--- + ## TornadoVM 0.6 21/02/2020 @@ -205,6 +252,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * Bug fixes for ternary conditions, reductions and code generator * Documentation improved +--- + ## TornadoVM 0.5 16/12/2019 @@ -219,6 +268,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * TornadoVM driver OpenCL initialization and OpenCL code cache improved * Refactoring of the FPGA execution modes (full JIT and emulation modes improved). +--- + ## TornadoVM 0.4 14/10/2019 @@ -233,6 +284,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * Bug related to a memory leak when running on GPUs solved * Bug fixes and stability improvements +--- + ## TornadoVM 0.3 22/07/2019 @@ -249,6 +302,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * Initial support for reductions on FPGAs. * Initial API for profiling tasks integrated. +--- + ## TornadoVM 0.2 25/02/2019 @@ -267,6 +322,8 @@ This file summarizes the new features and major changes for each *TornadoVM* ver * Compiler specializations for CPU and GPU reductions * Performance and stability fixes +--- + ## Tornado 0.1.0 07/09/2018 diff --git a/assembly/src/docs/Releases.md b/assembly/src/docs/Releases.md index 5e6f5316f0..1c9a1d9b52 100644 --- a/assembly/src/docs/Releases.md +++ b/assembly/src/docs/Releases.md @@ -1,5 +1,6 @@ # Releases +* TornadoVM 0.14 - 15/06/2022 : See [CHANGELOG](CHANGELOG.md#tornadovm-014) * TornadoVM 0.13 - 21/03/2022 : See [CHANGELOG](CHANGELOG.md#tornadovm-013) * TornadoVM 0.12 - 17/11/2021 : See [CHANGELOG](CHANGELOG.md#tornadovm-012) * TornadoVM 0.11 - 29/09/2021 : See [CHANGELOG](CHANGELOG.md#tornadovm-011) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 0aa4a35aa8..0a9698c735 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -6,7 +6,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-benchmarks tornado-benchmarks diff --git a/drivers/drivers-common/pom.xml b/drivers/drivers-common/pom.xml index b321e1ea2c..964a10f7c1 100644 --- a/drivers/drivers-common/pom.xml +++ b/drivers/drivers-common/pom.xml @@ -5,7 +5,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 4.0.0 diff --git a/drivers/opencl-jni/pom.xml b/drivers/opencl-jni/pom.xml index 2f4f121e72..998d4267ed 100644 --- a/drivers/opencl-jni/pom.xml +++ b/drivers/opencl-jni/pom.xml @@ -6,7 +6,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 tornado-drivers-opencl-jni tornado-drivers-opencl-jni diff --git a/drivers/opencl/pom.xml b/drivers/opencl/pom.xml index b81410415a..e2b5d48238 100644 --- a/drivers/opencl/pom.xml +++ b/drivers/opencl/pom.xml @@ -6,7 +6,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 tornado-drivers-opencl tornado-drivers-opencl diff --git a/drivers/pom.xml b/drivers/pom.xml index 5af529183d..79f5886f59 100644 --- a/drivers/pom.xml +++ b/drivers/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-drivers tornado-drivers diff --git a/drivers/ptx-jni/pom.xml b/drivers/ptx-jni/pom.xml index 752d2d7cf2..ad0d492cb2 100644 --- a/drivers/ptx-jni/pom.xml +++ b/drivers/ptx-jni/pom.xml @@ -6,7 +6,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 tornado-drivers-ptx-jni tornado-drivers-ptx-jni diff --git a/drivers/ptx/pom.xml b/drivers/ptx/pom.xml index b74f7c723c..0422f8a17e 100644 --- a/drivers/ptx/pom.xml +++ b/drivers/ptx/pom.xml @@ -7,7 +7,7 @@ tornado-drivers tornado - 0.14-dev + 0.14 tornado-drivers-ptx tornado-drivers-ptx diff --git a/drivers/spirv-levelzero-jni/pom.xml b/drivers/spirv-levelzero-jni/pom.xml index c58938b2ae..687ed65b71 100644 --- a/drivers/spirv-levelzero-jni/pom.xml +++ b/drivers/spirv-levelzero-jni/pom.xml @@ -6,7 +6,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 tornado-drivers-spirv-levelzero-jni tornado-drivers-spirv-levelzero-jni diff --git a/drivers/spirv/pom.xml b/drivers/spirv/pom.xml index 14e3002ae3..4d726388c4 100644 --- a/drivers/spirv/pom.xml +++ b/drivers/spirv/pom.xml @@ -7,7 +7,7 @@ tornado tornado-drivers - 0.14-dev + 0.14 tornado-drivers-spirv tornado-drivers-spirv diff --git a/examples/pom.xml b/examples/pom.xml index 848adda67d..4fe810b869 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-examples tornado-examples diff --git a/matrices/pom.xml b/matrices/pom.xml index 091dd1d6fc..fd8dd2da6c 100644 --- a/matrices/pom.xml +++ b/matrices/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-matrices tornado-matrices diff --git a/pom.xml b/pom.xml index b4d49086f7..79c7a84361 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 pom tornado https://github.com/beehive-lab/tornadovm diff --git a/runtime/pom.xml b/runtime/pom.xml index 92701c019d..8a88c0bb5e 100644 --- a/runtime/pom.xml +++ b/runtime/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-runtime tornado-runtime diff --git a/tornado-annotation/pom.xml b/tornado-annotation/pom.xml index ef592e4310..b6e661c71d 100644 --- a/tornado-annotation/pom.xml +++ b/tornado-annotation/pom.xml @@ -6,7 +6,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-annotation diff --git a/tornado-api/pom.xml b/tornado-api/pom.xml index 0925cf3050..41f860061f 100644 --- a/tornado-api/pom.xml +++ b/tornado-api/pom.xml @@ -5,12 +5,12 @@ tornado tornado - 0.14-dev + 0.14 tornado tornado-api - 0.14-dev + 0.14 tornado-api https://tornadovm.org diff --git a/unittests/pom.xml b/unittests/pom.xml index ccacda501e..efe71915a9 100644 --- a/unittests/pom.xml +++ b/unittests/pom.xml @@ -5,7 +5,7 @@ tornado tornado - 0.14-dev + 0.14 tornado-unittests tornado-unittests