Writing a modular GPGPU program in Java
Tokyo Institute of Technolory, Tokyo, Japan
Proceedings of the 2012 workshop on Modularity in Systems Software (MISS ’12), 2012
@inproceedings{ioki2012writing,
title={Writing a modular GPGPU program in Java},
author={Ioki, M. and Hozumi, S. and Chiba, S.},
booktitle={Proceedings of the 2012 workshop on Modularity in Systems Software},
pages={27–32},
year={2012},
organization={ACM}
}
This paper proposes a Java to CUDA runtime program translator for scientific-computing applications. Traditionally, these applications have been written in Fortran or C without using a rich modularization mechanism. Our translator enables those applications to be written in Java and run on GPGPUs while exploiting a rich modularization mechanism in Java. This translator dynamically generates optimized CUDA code from a Java program given at bytecode level when the program is running. By exploiting dynamic type information given at translation, the translator devirtualizes dynamic method dispatches and flattens objects into simple data representation in CUDA. To do this, a Java program must be written to satisfy certain constraints. This paper also shows that the performance overheads due to Java and WootinJ are not significantly high.
April 13, 2012 by hgpu