Performance Portability Across Heterogeneous SoCs Using a Generalized Library-Based Approach
- 1 June 2014
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Architecture and Code Optimization
- Vol. 11 (2), 1-25
- https://doi.org/10.1145/2608253
Abstract
Because of tight power and energy constraints, industry is progressively shifting toward heterogeneous system-on-chip (SoC) architectures composed of a mix of general-purpose cores along with a number of accelerators. However, such SoC architectures can be very challenging to efficiently program for the vast majority of programmers, due to numerous programming approaches and languages. Libraries, on the other hand, provide a simple way to let programmers take advantage of complex architectures, which does not require programmers to acquire new accelerator-specific or domain-specific languages. Increasingly, library-based, also called algorithm-centric, programming approaches propose to generalize the usage of libraries and to compose programs around these libraries, instead of using libraries as mere complements. In this article, we present a software framework for achieving performance portability by leveraging a generalized library-based approach. Inspired by the notion of a component, as employed in software engineering and HW/SW codesign, we advocate nonexpert programmers to write simple wrapper code around existing libraries to provide simple but necessary semantic information to the runtime. To achieve performance portability, the runtime employs machine learning (simulated annealing) to select the most appropriate accelerator and its parameters for a given algorithm. This selection factors in the possibly complex composition of algorithms used in the application, the communication among the various accelerators, and the tradeoff between different objectives (i.e., accuracy, performance, and energy). Using a set of benchmarks run on a real heterogeneous SoC composed of a multicore processor and a GPU, we show that the runtime overhead is fairly small at 5.1% for the GPU and 6.4% for the multi-core. We then apply our accelerator selection approach to a simulated SoC platform containing multiple inexact accelerators. We show that accelerator selection together with hardware parameter tuning achieves an average 46.2% energy reduction and a speedup of 2.1× while meeting the desired application error target.Keywords
This publication has 59 references indexed in Scilit:
- EnerJACM SIGPLAN Notices, 2011
- The gem5 simulatorACM SIGARCH Computer Architecture News, 2011
- Dynamic knobs for responsive power-aware computingACM SIGPLAN Notices, 2011
- GreenACM SIGPLAN Notices, 2010
- PetaBricksACM SIGPLAN Notices, 2009
- A comparison of extrinsic clustering evaluation metrics based on formal constraintsInformation Retrieval Journal, 2008
- PinACM SIGPLAN Notices, 2005
- Fuzzy Memoization for Floating-Point Multimedia ApplicationsIEEE Transactions on Computers, 2005
- Extending component-based design with hardware componentsScience of Computer Programming, 2005
- Image Quality Assessment: From Error Visibility to Structural SimilarityIEEE Transactions on Image Processing, 2004