Experiences in Building a Composable and Functional API for Runtime SPIR-V Code Generation

05/16/2023
by   Juan Fumero, et al.
0

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, such as the Java Virtual Machine (JVM). 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, and a console client application. 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.

READ FULL TEXT

page 4

page 12

research
10/10/2018

A Simple Java Code Generator for ACL2 Based on a Deep Embedding of ACL2 in Java

AIJ (ACL2 In Java) is a deep embedding in Java of an executable, side-ef...
research
02/09/2023

AutoNMT: A Framework to Streamline the Research of Seq2Seq Models

We present AutoNMT, a framework to streamline the research of seq-to-seq...
research
09/10/2023

O2ATH: An OpenMP Offloading Toolkit for the Sunway Heterogeneous Manycore Platform

The next generation Sunway supercomputer employs the SW26010pro processo...
research
01/08/2020

Deep Static Modeling of invokedynamic

Java 7 introduced programmable dynamic linking in the form of the invoke...
research
01/30/2018

Automatically Leveraging MapReduce Frameworks for Data-Intensive Applications

MapReduce is a popular programming paradigm for running large-scale data...
research
11/26/2019

Semantic Interior Mapology: A Toolbox For Indoor Scene Description From Architectural Floor Plans

We introduce the Semantic Interior Mapology (SIM) toolbox for the conver...
research
03/14/2023

Improving Java Deserialization Gadget Chain Mining via Overriding-Guided Object Generation

Java (de)serialization is prone to causing security-critical vulnerabili...

Please sign up or login with your details

Forgot password? Click here to reset