@inproceedings{d1d2f71c51e542778dbd740cbd48d8bc,
title = "Boosting Java Performance Using GPGPUs",
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.",
author = "James Clarkson and Christos Kotselidis and Gavin Brown and Mikel Luj{\'a}n",
year = "2017",
month = mar,
day = "4",
doi = "10.1007/978-3-319-54999-6_5",
language = "Undefined",
isbn = "978-3-319-54999-6",
series = "Lecture Notes in Computer Science",
publisher = "Springer Nature",
pages = "59--70",
editor = "Jens Knoop and Wolfgang Karl and Martin Schulz and Koji Inoue and Thilo Pionteck",
booktitle = "Architecture of Computing Systems - ARCS 2017: 30th International Conference, Vienna, Austria, April 3--6, 2017, Proceedings",
address = "United States",
}