Tornado VM: A Java Virtual Machine for Exploiting High-Performance Heterogeneous Hardware
The proliferation of heterogeneous hardware in recent years means that every system we program is likely to include a mix of computing elements; each of these with different hardware characteristics that enable programmers to improve performance while decreasing energy consumption. These new heterogeneous devices include multi-core CPUs, GPUs and FPGAs. This trend has been accompanied by changes in software development norms that do not necessarily favor programmers. A prime example is the two most popular heterogeneous programming languages, CUDA and OpenCL, which expose several low-level features to the API making them difficult to use by non-expert users.
In this talk, we present TornadoVM, a heterogeneous programming framework for Java programs. TornadoVM co-exists with standard JVMs (e.g., OpenJDK) that implement the JVMCI. TornadoVM consists of three components: 1) a simple API for composing pipelines of existing Java methods, 2) an optimizing JIT compiler that extends the Graal compiler with hardware-aware optimizations that generate OpenCL C code, and 3) a runtime system that executes TornadoVM specific bytecodes, performs memory management, and schedules the code for execution on GPUs, multicore CPUs, and FPGAs. Essentially, TornadoVM is a “VM-in-a-VM” that can adapt execution completely dynamically and transparently to the user, always finding the highest-performing combination of hardware accelerators through dynamic reconfiguration.
Christos Kotselidis is a Lecturer (Assistant Prof.) at the University of Manchester working on hardware/software co-designed Virtual Machines. Prior to joining the University of Manchester, he worked as a Principal Member of Technical Staff at Oracle Labs and as a Senior Research Scientist at Intel Labs in the areas of chip design, micro-architecture research, hw/sw co-designed CPUs, Compilers, Virtual Machines and Garbage Collection.
Thu 18 JulDisplayed time zone: Belfast change
13:30 - 15:10
|Tornado VM: A Java Virtual Machine for Exploiting High-Performance Heterogeneous Hardware |
Christos Kotselidis University of Manchester, UK
|Another Decade of SOM Language Implementation: Virtual Machines for Research and Teaching|
Stefan Marr University of Kent
|Janus: automatic binary analysis, instrumentation and optimisation using rewrite rules |
|Lightweight Software Profiling of Compiled Code|
Andrew Craik IBM Canada