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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
IvyTown Xeon + FPGA: The HARP program. Intel Corp
HSA programmer’s reference manual: HSAIL virtual ISA and programming model, compiler writer, and object format (BRIG). Technical report, HSA Foundation, July 2015
The OpenACC: Application Programming Interface. Technical report, OpenACC-Standard.org, October 2015
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)
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
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
Compute unified device architecture (CUDA). http://www.nvidia.com/object/cuda_home_new.html
Duran, A., et al.: OmpSs: a proposal for programming heterogeneous multi-core architectures. Parallel Process. Lett. 21(02), 173–193 (2011)
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)
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
The Android ION memory allocator. https://lwn.net/Articles/480055/
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)
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)
Mittal, S., Vetter, J.S.: A survey of CPU-GPU Heterogeneous Computing Techniques. ACM Comput. Surv. 47(4), 1–35 (2015)
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
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
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)
OpenCL: The open standard for parallel programming of heterogeneous systems. http://www.khronos.org/opencl
The OpenMP API specification for parallel programming. http://www.openmp.org/
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)
Qualcomm Snapdragon: Qualcomm Technologies Inc. https://www.qualcomm.com/products/snapdragon
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)
Heterogeneous computing made simpler with the Symphony SDK. https://developer.qualcomm.com/blog/heterogeneous-computing-made-simpler-symphony-sdk
Qualcomm Symphony System Manager SDK. https://developer.qualcomm.com/software/symphony-system-manager-sdk
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)