Abstract
Graphic processing units (GPU) have been consolidated as general-purpose computational devices that combine a challenging programming model with an impressive acceleration of HPC programs whose total execution time are dominated by performance-critical small sections of code. However, there is still a lack of high-level programming language abstractions for better specifying heterogenous parallel computations using these devices. This paper proposes Fusion, an extension of Java that introduces new abstractions for heterogenous multicore-GPU programming, taking advantage of new features introduced by the NVIDIA’s Kepler architecture, such as Hyper-Q and Dynamic Parallelism.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Auerbach, J., Bacon, D.F., Cheng, P., Rabbah, R.: Lime: A Java-compatible and Synthesizable Language for Heterogeneous Architectures. In: ACM Sigplan Notices, vol. 45, pp. 89–108. ACM (2010)
Blythe, D.: The Direct3D 10 System. ACM Transactions on Graphics (TOG) 25(3), 724–734 (2006)
Bradley, T.: Hyper-Q Example. NVidia Corporation. Whitepaper v1.0 (2012)
Carneiro, T., Muritiba, A.E., Negreiros, M., de Campos, G.A.L.: A New Parallel Schema for Branch-and-Bound Algorithms Using GPGPU. In: 23rd International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), pp. 41–47 (2011)
Corporation, N.: Nvidia’s Next Generation CUDA Compute Architecture: Kepler GK110. Whitepaper v1.0 (2012)
Dubach, C., Cheng, P., Rabbah, R., Bacon, D.F., Fink, S.J.: Compiling a High-Level Language for GPUs (Via Language Support for Architectures and Compilers). In: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, pp. 1–12. ACM, New York (2012)
Duran, A., Klemm, M.: The Intel® Many Integrated Core Architecture. In: 2012 International Conference on High Performance Computing and Simulation (HPCS), pp. 365–366. IEEE (2012)
Fatahalian, K., Houston, M.: A Closer Look at GPUs. Commun. ACM 51, 50–57 (2008)
Geoffray, N., Thomas, G., Lawall, J., Muller, G., Folliot, B.: VMKit: A Substrate for Managed Runtime Environments. In: Virtual Execution Environment Conference (VEE 2010), Pittsburgh, USA. ACM Press (March 2010)
Glaskowsky, P.N.: Nvidias Fermi: The First Complete GPU Computing Architecture. NVIDIA Corp. (2009)
Herbordt, M.C., VanCourt, T., Gu, Y., Sukhwani, B., Conti, A., Model, J., DiSabello, D.: Achieving High Performance with FPGA-Based Computing. Computer 40(3), 50 (2007)
Kirk, D., et al.: Nvidia CUDA Software and GPU Parallel Computing Architecture. In: ISMM, vol. 7, pp. 103–104 (2007)
Lattner, C.: LLVM: An Infrastructure for Multi-Stage Optimization. Master’s thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, Urbana, IL (December 2002)
Lattner, C.: The LLVM Compiler Infraestructure (September 2012), http://www.llvm.org
Nickolls, J., Dally, W.J.: The GPU Computing Era. IEEE Micro 30(2), 56–69 (2010)
Owens, J.D., Houston, M., Luebke, D., Green, S., Stone, J.E., Phillips, J.C.: GPU Computing. Proceedings of the IEEE 96(5), 879–899 (2008)
Pessoa, T.C.: Estratégias Paralelas Inteligentes para o Método Branch-and-Bound Aplicadas ao Problema do Caixeiro Viajante Assimétrico. Master’s thesis, Universidade Estadual do Ceará (2012)
Pinheiro, A.B.: Abstrações Linguísticas para Programação de Propósito Geral sobre Aceleradores Computacionais Baseados em GPU. Master’s thesis, Universidade Federal do Ceará (2013)
Pratt Szeliga, P.C., Fawcett, J.W., Welch, R.D.: Rootbeer: Seamlessly Using GPUs from Java. In: 14th IEEE International Conference on High Performance Computing and Communication (HPCC), pp. 375–380. IEEE Computer Society (June 2012)
Wolfe, M., et al.: CUDA Fortran Programming Guide and Reference. The Portland Group, Release (2012)
Yan, Y., Grossman, M., Sarkar, V.: JCuda: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 887–899. Springer, Heidelberg (2009)
Zaremba, W., Lin, Y., Grover, V.: Jabee: Framework for Object-Oriented Java Bytecode Compilation and Execution on Graphics Processor Units. In: Proceedings of the 5th Annual Workshop on General Purpose Processing with Graphics Processing Units, pp. 74–83. ACM (2012)
Zhang, W.: Branch-and-Bound Search Algorithms and Their Computational Complexity. Technical report, DTIC Document (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Pinheiro, A.B., de Carvalho Junior, F.H., Arruda, N.G.P.B., Carneiro, T. (2014). Fusion: Abstractions for Multicore/Manycore Heterogenous Parallel Programming Using GPUs. In: Quintão Pereira, F.M. (eds) Programming Languages. SBLP 2014. Lecture Notes in Computer Science, vol 8771. Springer, Cham. https://doi.org/10.1007/978-3-319-11863-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-11863-5_8
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11862-8
Online ISBN: 978-3-319-11863-5
eBook Packages: Computer ScienceComputer Science (R0)