Skip to main content

Abstract Representation of Shared Data for Heterogeneous Computing

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2017)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11403))

  • 383 Accesses

Abstract

Data management across address spaces in heterogeneous platforms represents a significant performance bottleneck and energy cost for applications, particularly on mobile System-on-Chip (SoC). We propose a light-weight middleware layer to regulate concurrent access to shared data in a Heterogeneous SoC. Our approach uses acquire-release semantics to provide the following benefits: (i) enable high-level heterogeneous programming frameworks to easily maintain consistent non-device, non-platform-specific data abstractions for programmers, and (ii) provide an abstract memory interface with strong analyzable properties about the correctness and performance of the synchronization operations across memory-types. These benefits are achieved while retaining the ability to plug-in arbitrary types of heterogeneous memory frameworks and to enable platform-specific and inter-framework synchronization optimizations. We demonstrate that our approach avoids paying the “abstraction cost”, achieving performance within 5% of manually optimized OpenCL while providing a simpler and understandable API.

Qualcomm Research is a division of Qualcomm Technologies, Inc.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

References

  1. IvyTown Xeon + FPGA: The HARP program. Intel Corp

    Google Scholar 

  2. HSA programmer’s reference manual: HSAIL virtual ISA and programming model, compiler writer, and object format (BRIG). Technical report, HSA Foundation, July 2015

    Google Scholar 

  3. The OpenACC: Application Programming Interface. Technical report, OpenACC-Standard.org, October 2015

    Google Scholar 

  4. Augonnet, C., Thibault, S., Namyst, R., Wacrenier, P.-A.: StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurrency Comput.: Pract. Experience 23(2), 187–198 (2011)

    Article  Google Scholar 

  5. Che, S., et al.: Rodinia: a benchmark suite for heterogeneous computing. In: 2009 IEEE International Symposium on Workload Characterization, IISWC 2009, pp. 44–54, October 2009

    Google Scholar 

  6. Chen, D.Q., Dwarkadas, S., Parthasarathy, S., Pinheiro, E., Scott, M.L.: InterWeave: a middleware system for distributed shared state. In: Dwarkadas, S. (ed.) LCR 2000. LNCS, vol. 1915, pp. 207–220. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-40889-4_16

    Chapter  Google Scholar 

  7. Compute unified device architecture (CUDA). http://www.nvidia.com/object/cuda_home_new.html

  8. Duran, A., et al.: OmpSs: a proposal for programming heterogeneous multi-core architectures. Parallel Process. Lett. 21(02), 173–193 (2011)

    Article  MathSciNet  Google Scholar 

  9. Gelado, I., Stone, J.E., Cabezas, J., Patel, S., Navarro, N., Hwu, W.W.: An asymmetric distributed shared memory model for heterogeneous parallel systems. In: Proceedings of the Fifteenth Edition of ASPLOS on Architectural Support for Programming Languages and Operating Systems, ASPLOS XV, pp. 347–358. ACM, New York (2010)

    Google Scholar 

  10. Hu, Q., Gumerov, N.A., Duraiswami, R.: Scalable fast multipole methods on distributed heterogeneous architectures. In: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2011, pp. 36:1–36:12. ACM, New York 2011

    Google Scholar 

  11. The Android ION memory allocator. https://lwn.net/Articles/480055/

  12. Keleher, P., Cox, A.L., Dwarkadas, S., Zwaenepoel, W.: TreadMarks: distributed shared memory on standard workstations and operating systems. In: Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference, WTEC 1994, p. 10. USENIX Association, Berkeley (1994)

    Google Scholar 

  13. Wei Liu, et al.: A balanced programming model for emerging heterogeneous multicore systems. In: Proceedings of the 2nd USENIX Conference on Hot Topics in Parallelism, HotPar 2010, p. 3. USENIX Association, Berkeley (1994)

    Google Scholar 

  14. Mittal, S., Vetter, J.S.: A survey of CPU-GPU Heterogeneous Computing Techniques. ACM Comput. Surv. 47(4), 1–35 (2015)

    Article  Google Scholar 

  15. Nardi, L., et al.: Introducing SLAMBench, a performance and accuracy benchmarking methodology for SLAM. In: 2015 IEEE International Conference on Robotics and Automation (ICRA), pp. 5783–5790, May 2015

    Google Scholar 

  16. Newcombe, R.A., et al.: KinectFusion: real-time dense surface mapping and tracking. In: 2011 10th IEEE International Symposium on Mixed and Augmented Reality (ISMAR), pp. 127–136, October 2011

    Google Scholar 

  17. Jouppi, N.P., et al.: In-datacenter performance analysis of a Tensor Processing Unit. In: Proceedings of the 44th Annual International Symposium on Computer Architecture, ISCA 2017, pp. 1–12. ACM, New York (2017)

    Google Scholar 

  18. OpenCL: The open standard for parallel programming of heterogeneous systems. http://www.khronos.org/opencl

  19. The OpenMP API specification for parallel programming. http://www.openmp.org/

  20. Pandit, P., Govindarajan, R.: Fluidic kernels: cooperative execution of OpenCL programs on multiple heterogeneous devices. In: Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization, p. 273. ACM (2014)

    Google Scholar 

  21. Qualcomm Snapdragon: Qualcomm Technologies Inc. https://www.qualcomm.com/products/snapdragon

  22. Shreiner, D., The Khronos OpenGL ARB Working Group: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, 7th edn. Addison-Wesley Professional (2009)

    Google Scholar 

  23. Heterogeneous computing made simpler with the Symphony SDK. https://developer.qualcomm.com/blog/heterogeneous-computing-made-simpler-symphony-sdk

  24. Qualcomm Symphony System Manager SDK. https://developer.qualcomm.com/software/symphony-system-manager-sdk

Download references

Acknowledgement

Qualcomm and Snapdragon are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Qualcomm Snapdragon and Qualcomm Symphony System Manager are products of Qualcomm Technologies, Inc.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tushar Kumar .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kumar, T., Natarajan, A., Ruan, W., Badr, M., Gracia, D.S., Cascaval, C. (2019). Abstract Representation of Shared Data for Heterogeneous Computing. In: Rauchwerger, L. (eds) Languages and Compilers for Parallel Computing. LCPC 2017. Lecture Notes in Computer Science(), vol 11403. Springer, Cham. https://doi.org/10.1007/978-3-030-35225-7_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-35225-7_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-35224-0

  • Online ISBN: 978-3-030-35225-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics