Advanced search
1 file | 2.06 MB

Performance portability across heterogeneous SoCs using a generalized library-based approach

Author
Organization
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
MODEL, LANGUAGE, POWER, COMPONENT-BASED DESIGN, ARCHITECTURES, COMPILER, SUPPORT, Design, Performance, Languages, Experimentation, SoC, heterogeneity, performance portability, library-based programming, approximate computing

Downloads

  • (...).pdf
    • full text
    • |
    • UGent only
    • |
    • PDF
    • |
    • 2.06 MB

Citation

Please use this url to cite or link to this publication:

Chicago
Fang, Shuangde, Zidong Du, Yuntan Fang, Yuanjie Huang, Yang Chen, Lieven Eeckhout, Olivier Temam, Huawei Li, Yunji Chen, and Chengyong Wu. 2014. “Performance Portability Across Heterogeneous SoCs Using a Generalized Library-based Approach.” Acm Transactions on Architecture and Code Optimization 11 (2): 165–189.
APA
Fang, S., Du, Z., Fang, Y., Huang, Y., Chen, Y., Eeckhout, L., Temam, O., et al. (2014). Performance portability across heterogeneous SoCs using a generalized library-based approach. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 11(2), 165–189.
Vancouver
1.
Fang S, Du Z, Fang Y, Huang Y, Chen Y, Eeckhout L, et al. Performance portability across heterogeneous SoCs using a generalized library-based approach. ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION. ACM; 2014;11(2):165–89.
MLA
Fang, Shuangde, Zidong Du, Yuntan Fang, et al. “Performance Portability Across Heterogeneous SoCs Using a Generalized Library-based Approach.” ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION 11.2 (2014): 165–189. Print.
@article{5916018,
  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{\texttimes} while meeting the desired application error target.},
  articleno    = {21},
  author       = {Fang, Shuangde and Du, Zidong and Fang, Yuntan and Huang, Yuanjie and Chen, Yang and Eeckhout, Lieven and Temam, Olivier and Li, Huawei and Chen, Yunji and Wu, Chengyong},
  issn         = {1544-3566},
  journal      = {ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION},
  keyword      = {MODEL,LANGUAGE,POWER,COMPONENT-BASED DESIGN,ARCHITECTURES,COMPILER,SUPPORT,Design,Performance,Languages,Experimentation,SoC,heterogeneity,performance portability,library-based programming,approximate computing},
  language     = {eng},
  number       = {2},
  pages        = {21:165--21:189},
  publisher    = {ACM},
  title        = {Performance portability across heterogeneous SoCs using a generalized library-based approach},
  url          = {http://dx.doi.org/10.1145/2608253},
  volume       = {11},
  year         = {2014},
}

Altmetric
View in Altmetric
Web of Science
Times cited: