Design, Implementation, and Application of GPU-Based Java Bytecode Interpreters
We present the design and implementation of GVM, the first system for executing Java bytecode entirely on GPUs. GVM is ideal for applications that execute a large number of short-living tasks, which share a significant fraction of their codebase and have similar execution time. GVM uses novel algorithms, scheduling, and data layout techniques to adapt to the massively parallel programming and execution model of GPUs.
We apply GVM to generate and execute tests for Java projects. First, we implement a sequence-based test generation on top of GVM and design novel algorithms to avoid redundant test sequences. Second, we use GVM to execute randomly generated test cases. We evaluate GVM by comparing it with two existing Java bytecode interpreters (Oracle JVM and Java Pathfinder), as well as with the Oracle JVM with just-in-time (JIT) compiler, which has been engineered and optimized for over twenty years. Our evaluation shows that sequence-based test generation on GVM outperforms both Java Pathfinder and Oracle JVM interpreter. Additionally, our results show that GVM performs as well as running our parallel sequence-based test generation algorithm using JVM with JIT with many CPU threads. Furthermore, our evaluation on several classes from open-source projects shows that executing randomly generated tests on GVM outperforms sequential execution on JVM interpreter and JVM with JIT.
Fri 25 Oct
|14:00 - 14:22|
Ahmet CelikThe University of Texas at Austin, Pengyu NieThe University of Texas at Austin, Chris RossbachThe University of Texas at Austin and VMware Research Group, Milos GligoricThe University of Texas at AustinDOI
|14:22 - 14:45|
Christian WimmerOracle Labs, Codrut StancuOracle Labs, Peter HoferOracle Labs, Vojin JovanovicOracle Labs, Paul WögererOracle Labs, Peter B. KesslerOracle Labs, Oleg PlissOracle Labs, Thomas WuerthingerOracle LabsDOI Pre-print
|14:45 - 15:07|
|Link to publication DOI File Attached|
|15:07 - 15:30|