Affiliation:
1. SKL Computer Architecture, ICT, CAS, China; Graduate School, CAS, China
2. Microsoft Research, China
3. Ghent University, Belgium
4. INRIA, Saclay, France
5. SKL Computer Architecture, ICT, CAS, China
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference68 articles.
1. A. Agarwal M. Rinard S. Sidiroglou S. Misailovic and H. Hoffmann. 2009. Using Code Perforation to Improve Performance Reduce Energy Consumption and Respond to Failures. Technical Report. MIT. A. Agarwal M. Rinard S. Sidiroglou S. Misailovic and H. Hoffmann. 2009. Using Code Perforation to Improve Performance Reduce Energy Consumption and Respond to Failures. Technical Report. MIT.
2. Fuzzy Memoization for Floating-Point Multimedia Applications
3. A comparison of extrinsic clustering evaluation metrics based on formal constraints
4. PetaBricks
Cited by
9 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献