Boosting Java Performance Using GPGPUs

Boosting Java Performance Using GPGPUs
复制标题

使用 GPGPU 提升 Java 性能

DOI:
10.1007/978-3-319-54999-6_5
复制
发表时间:
2015
期刊:
2014 IEEE International Symposium on Mixed and Augmented Reality (ISMAR)
影响因子:
--
通讯作者:
M. Luján
M. Luján
中科院分区:
--
文献类型:
--
作者:
James Clarkson;Christos Kotselidis;Gavin Brown;M. Luján

文献摘要

被引文献

相似文献

在本文中,我们描述了JACC,这是一个实验框架,允许开发人员直接从Java编程GPGPU。JACC的目标是允许开发人员从使用异类硬件中获益,同时将所需的代码重构数量降至最低。JACC利用了两个关键抽象:任务,它封装了在GPGPU上执行代码所需的所有信息;任务图,它捕获任务间的控制流和数据依赖关系。这些抽象使JACC运行时系统能够自动编排主机和GPGPU之间的数据移动和同步;消除了显式管理不同的内存空间的需要。通过与现有Java框架进行比较,我们展示了JACC在可编程性和性能方面的优势。实验结果表明,使用NVIDIA Tesla K20M GPU,平均性能加速比为19倍,与在8个评估基准上编写多线程Java代码相比,代码复杂性降低了4倍。
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.