Skip to content

beehive-lab/tornadovm-data-transfer-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Optimizing I/O Data Transfer with TornadoVM - Demo

This project demonstrates data transfer patterns using TornadoVM:

  1. FIRST_EXECUTION vs EVERY_EXECUTION (for input data)
  2. EVERY_EXECUTION vs UNDER_DEMAND (for output data)
  3. UNDER_DEMAND (for a partial output using DataRange)
  4. Chain multiple tasks in a single TaskGraph to return the final result
  5. Chain multiple tasks in multiple TaskGraphs to return the final result

Requirements

  • TornadoVM installed and sourced
  • Java 21+
  • GPU backend (OpenCL / PTX / SPIR-V)
sdk use java 21.0.9-tem
sdk use tornadovm 2.2.0-opencl

Build & Run

The main class requires an integer to define which scenarios to run. Passing 1234 is treated as a special value and triggers execution of all four scenarios. Passing any other number (such as 3) limits execution to the indexed scenario.

To build:

mvn clean package

To run all scenarios:

tornado --jvm="-Xmx24g" -cp target/tornadovm-data-transfer-demo-1.0-SNAPSHOT.jar demo.Main 12345 

or

java @$TORNADOVM_HOME/tornado-argfile -Xmx24g -cp target/tornadovm-data-transfer-demo-1.0-SNAPSHOT.jar demo.Main 12345

Acknowledgments

This work is partially funded by the following EU & UKRI grants (most recent first):

About

A demo project that demonstrates data transfer patterns using TornadoVM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages