Boosting Java Performance using GPGPUs
James Clarkson, Christos Kotselidis, Gavin Brown, Mikel, Luj\'an

TL;DR
This paper introduces Jacc, a Java framework that simplifies GPGPU programming by providing abstractions and automation, resulting in significant performance improvements and reduced code complexity.
Contribution
Jacc is the first framework enabling direct GPGPU programming from Java with minimal code changes and automatic data management.
Findings
Achieved an average of 32x speedup on GPU benchmarks
Reduced code size by 4.4x using Jacc
Demonstrated ease of programming GPGPUs from Java
Abstract
Heterogeneous programming has started becoming the norm in order to achieve better performance by running portions of code on the most appropriate hardware resource. Currently, significant engineering efforts are undertaken in order to enable existing programming languages to perform heterogeneous execution mainly on GPUs. In this paper we describe Jacc, an experimental framework which allows developers to program GPGPUs directly from Java. By using the Jacc framework, developers have the ability to add GPGPU support into their applications with minimal code refactoring. To simplify the development of GPGPU applications we allow developers to model heterogeneous code using two key abstractions: \textit{tasks}, which encapsulate all the information needed to execute code on a GPGPU; and \textit{task graphs}, which capture the inter-task control-flow of the application. Using this…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Software System Performance and Reliability · Real-Time Systems Scheduling
