JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA
Department of Computer Science, Rice University
In Euro-Par 2009 Parallel Processing , Vol. 5704 (2009), pp. 887-899.
@article{yan2009jcuda,
title={JCUDA: a programmer-friendly interface for accelerating Java programs with CUDA},
author={Yan, Y. and Grossman, M. and Sarkar, V.},
journal={Euro-Par 2009 Parallel Processing},
pages={887–899},
year={2009},
publisher={Springer}
}
A recent trend in mainstream desktop systems is the use of general-purpose graphics processor units (GPGPUs) to obtain order-of-magnitude performance improvements. CUDA has emerged as a popular programming model for GPGPUs for use by C/C++ programmers. Given the widespread use of modern object-oriented languages with managed runtimes like Java and C#, it is natural to explore how CUDA-like capabilities can be made accessible to those programmers as well. In this paper, we present a programming interface called JCUDA that can be used by Java programmers to invoke CUDA kernels. Using this interface, programmers can write Java codes that directly call CUDA kernels, and delegate the responsibility of generating the Java-CUDA bridge codes and host-device data transfer calls to the compiler. Our preliminary performance results show that this interface can deliver significant performance improvements to Java programmers. For future work, we plan to use the JCUDA interface as a target language for supporting higher level parallel programming languages like X10 and Habanero-Java.
January 7, 2011 by hgpu