Sun 22 - Fri 27 October 2023 Cascais, Portugal
Mon 23 Oct 2023 16:25 - 16:50 at Room VI - Session #4 Chair(s): Adam Welc

The Standard Portable Intermediate Representation (SPIR-V) is a low-level binary format designed for representing shaders and compute kernels that can be consumed by OpenCL for computing kernels, and Vulkan for graphics rendering. As a binary representation, SPIR-V is meant to be used by compilers and runtime systems and is usually performed by C/C++ programs and the LLVM software and compiler ecosystem. However, not all programming environments, runtime systems, and language implementations are C/C++ or based on LLVM.

This paper presents the Beehive SPIR-V Toolkit; a framework that can automatically generate a Java composable and functional library for dynamically building SPIR-V binary modules. The Beehive SPIR-V Toolkit can be used by optimizing compilers and runtime systems to generate and validate SPIR-V binary modules from managed runtime systems. Furthermore, our framework is architected to accommodate new SPIR-V releases in an easy-to-maintain manner, and it facilitates the automatic generation of Java libraries for other standards, besides SPIR-V. The Beehive SPIR-V Toolkit also includes an assembler that emits SPIR-V binary modules from disassembled SPIR-V text files, and a disassembler that converts the SPIR-V binary code into a text file. To the best of our knowledge, the Beehive SPIR-V Toolkit is the first Java programming framework that can dynamically generate SPIR-V binary modules.

To demonstrate the use of our framework, we showcase the integration of the SPIR-V Beehive Toolkit in the context of the TornadoVM, a Java framework for automatically offloading and running Java programs on heterogeneous hardware. We show that, via the SPIR-V Beehive Toolkit, the TornadoVM is able to compile code 3x faster than its existing OpenCL C JIT compiler, and it performs up to 1.52x faster than the existing OpenCL C backend in TornadoVM.

Mon 23 Oct

Displayed time zone: Lisbon change

16:00 - 17:30
Session #4VMIL at Room VI
Chair(s): Adam Welc Mysten Labs
Collecting Garbage on the Blockchain
Luc Bläser DFINITY Foundation, Claudio Russo Microsoft Research, Ulan Degenbaev Google, Omer S. Agacan Indiana University, Gabor Greif DFINITY, Jason Ibrahim DFINITY Foundation
Beehive SPIR-V Toolkit: A Composable and Functional API for Runtime SPIR-V Code Generation
Juan Fumero University of Manchester, György Rethy ETH Zurich, Athanasios Stratikopoulos University of Manchester, Nikos Foutris University of Manchester, Christos Kotselidis University of Manchester
DOI Pre-print
Gigue: A JIT Code Binary Generator for Hardware Testing
Quentin DUCASSE Lab-STICC, Pascal Cotret Lab-STICC CNRS UMR 6285, ENSTA Bretagne, Loïc Lagadec Lab-STICC CNRS UMR 6285, ENSTA Bretagne
Day closing
Closing Remarks
Andrea Rosà USI Lugano