Skip to main content

Fusion: Abstractions for Multicore/Manycore Heterogenous Parallel Programming Using GPUs

  • Conference paper
  • 593 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8771))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   34.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Blythe, D.: The Direct3D 10 System. ACM Transactions on Graphics (TOG) 25(3), 724–734 (2006)

    Article  MathSciNet  Google Scholar 

  3. Bradley, T.: Hyper-Q Example. NVidia Corporation. Whitepaper v1.0 (2012)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Corporation, N.: Nvidia’s Next Generation CUDA Compute Architecture: Kepler GK110. Whitepaper v1.0 (2012)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Fatahalian, K., Houston, M.: A Closer Look at GPUs. Commun. ACM 51, 50–57 (2008)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

  10. Glaskowsky, P.N.: Nvidias Fermi: The First Complete GPU Computing Architecture. NVIDIA Corp. (2009)

    Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. Kirk, D., et al.: Nvidia CUDA Software and GPU Parallel Computing Architecture. In: ISMM, vol. 7, pp. 103–104 (2007)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Lattner, C.: The LLVM Compiler Infraestructure (September 2012), http://www.llvm.org

  15. Nickolls, J., Dally, W.J.: The GPU Computing Era. IEEE Micro 30(2), 56–69 (2010)

    Article  Google Scholar 

  16. 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)

    Article  Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. Wolfe, M., et al.: CUDA Fortran Programming Guide and Reference. The Portland Group, Release (2012)

    Google Scholar 

  21. 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)

    Chapter  Google Scholar 

  22. 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)

    Google Scholar 

  23. Zhang, W.: Branch-and-Bound Search Algorithms and Their Computational Complexity. Technical report, DTIC Document (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics