Overview
Explore the world of heterogeneous computing with TornadoVM, a cutting-edge programming framework for Java. Dive into a 41-minute talk by Juan Fumero that introduces this innovative solution for executing Java programs on diverse hardware accelerators. Learn how TornadoVM simplifies the process of leveraging multi-core CPUs, GPUs, and FPGAs to enhance performance and reduce energy consumption. Discover the framework's three key components: a user-friendly API for method pipeline composition, an optimizing JIT compiler with hardware-aware features, and a dynamic runtime system. Gain insights into TornadoVM's ability to transparently adapt execution to various hardware configurations, making heterogeneous computing accessible to Java developers without the need for low-level programming languages like CUDA or OpenCL. Explore practical examples, compiler specializations, and the decision-making process behind TornadoVM's dynamic reconfiguration capabilities.
Syllabus
MANCHESTER
What is an FPGA Field Programmable Gate Array
What is a GPU? Graphics Processing Unit
Current Computer Systems & Prog. Lang
TornadoVM Overview
Tornado API-example
Tornado API - Map-Reduce
TornadoVM Compiler & Runtime Overview
TornadoVMJIT Compiler Specializations
FPGA Specializations
TornadoVM Bytecodes - Example
How is the decision made?
Additional features
Takeaways
Taught by
Java