Boosting Java Performance Using GPGPUs
Boosting Java Performance Using GPGPUs
复制标题
使用 GPGPU 提升 Java 性能
DOI:
10.1007/978-3-319-54999-6_5
复制
发表时间:
2015
期刊:
影响因子:
--
通讯作者:
M. Luján
中科院分区:
文献类型:
--
作者:
James Clarkson;Christos Kotselidis;Gavin Brown;M. Luján
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.