Boosting Java Performance Using GPGPUs

James Clarkson, Christos Kotselidis, Gavin Brown, Mikel Luján

Research output: Chapter in Book/Conference proceedingConference contributionpeer-review

169 Downloads (Pure)

Abstract

In this paper we describe Jacc, an experimental framework which allows developers to program GPGPUs directly from Java. The goal of Jacc, is to allow developers to benefit from using heterogeneous hardware whilst minimizing the amount of code refactoring required. Jacc utilizes two key abstractions: tasks which encapsulate all the information needed to execute code on a GPGPU; and task graphs which capture both inter-task control-flow and data dependencies. These abstractions enable the Jacc runtime system to automatically choreograph data movement and synchronization between the host and the GPGPU; eliminating the need to explicitly manage disparate memory spaces. We demonstrate the advantages of Jacc, both in terms of programmability and performance, by evaluating it against existing Java frameworks. Experimental results show an average performance speedup of 19x, using NVIDIA Tesla K20m GPU, and a 4x decrease in code complexity when compared with writing multi-threaded Java code across eight evaluated benchmarks.
Original languageUndefined
Title of host publicationArchitecture of Computing Systems - ARCS 2017: 30th International Conference, Vienna, Austria, April 3--6, 2017, Proceedings
EditorsJens Knoop, Wolfgang Karl, Martin Schulz, Koji Inoue, Thilo Pionteck
Place of PublicationCham
PublisherSpringer Nature
Pages59-70
Number of pages12
ISBN (Print)978-3-319-54999-6
DOIs
Publication statusPublished - 4 Mar 2017

Publication series

NameLecture Notes in Computer Science
Volume10172

Cite this