DySel: Lightweight dynamic selection for kernel-based data-parallel programming model

Li Wen Chang, Hee Seok Kim, Wen-Mei W Hwu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

The rising pressure for simultaneously improving performance and reducing power is driving more diversity into all aspects of computing devices. An algorithm that is wellmatched to the target hardware can run multiple times faster and more energy efficiently than one that is not. The problem is complicated by the fact that a program's input also affects the appropriate choice of algorithm. As a result, software developers have been faced with the challenge of determining the appropriate algorithm for each potential combination of target device and data. This paper presents DySel, a novel runtime system for automating such determination for kernel-based data parallel programming models such as OpenCL, CUDA, OpenACC, and C++AMP. These programming models cover many applications that demand high performance in mobile, cloud and high-performance computing. DySel systematically deploys candidate kernels on a small portion of the actual data to determine which achieves the best performance for the hardware-data combination. The test-deployment, referred to as micro-profiling, contributes to the final execution result and incurs less than 8% of overhead in the worst observed case when compared to an oracle. We show four major use cases where DySel provides significantly more consistent performance without tedious effort from the developer.

Original languageEnglish (US)
Title of host publicationASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems
PublisherAssociation for Computing Machinery
Pages667-680
Number of pages14
ISBN (Electronic)9781450340915
DOIs
StatePublished - Mar 25 2016
Event21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016 - Atlanta, United States
Duration: Apr 2 2016Apr 6 2016

Publication series

NameInternational Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
Volume02-06-April-2016

Other

Other21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016
CountryUnited States
CityAtlanta
Period4/2/164/6/16

Fingerprint

Parallel programming
Hardware

Keywords

  • Dynamic Profiling
  • Graphics Processing Unit

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture

Cite this

Chang, L. W., Kim, H. S., & Hwu, W-M. W. (2016). DySel: Lightweight dynamic selection for kernel-based data-parallel programming model. In ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems (pp. 667-680). (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS; Vol. 02-06-April-2016). Association for Computing Machinery. https://doi.org/10.1145/2872362.2872373

DySel : Lightweight dynamic selection for kernel-based data-parallel programming model. / Chang, Li Wen; Kim, Hee Seok; Hwu, Wen-Mei W.

ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 2016. p. 667-680 (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS; Vol. 02-06-April-2016).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Chang, LW, Kim, HS & Hwu, W-MW 2016, DySel: Lightweight dynamic selection for kernel-based data-parallel programming model. in ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems. International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS, vol. 02-06-April-2016, Association for Computing Machinery, pp. 667-680, 21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016, Atlanta, United States, 4/2/16. https://doi.org/10.1145/2872362.2872373
Chang LW, Kim HS, Hwu W-MW. DySel: Lightweight dynamic selection for kernel-based data-parallel programming model. In ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery. 2016. p. 667-680. (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS). https://doi.org/10.1145/2872362.2872373
Chang, Li Wen ; Kim, Hee Seok ; Hwu, Wen-Mei W. / DySel : Lightweight dynamic selection for kernel-based data-parallel programming model. ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 2016. pp. 667-680 (International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS).
@inproceedings{e55f86e8d3b946ea84fa5875feb7d0dd,
title = "DySel: Lightweight dynamic selection for kernel-based data-parallel programming model",
abstract = "The rising pressure for simultaneously improving performance and reducing power is driving more diversity into all aspects of computing devices. An algorithm that is wellmatched to the target hardware can run multiple times faster and more energy efficiently than one that is not. The problem is complicated by the fact that a program's input also affects the appropriate choice of algorithm. As a result, software developers have been faced with the challenge of determining the appropriate algorithm for each potential combination of target device and data. This paper presents DySel, a novel runtime system for automating such determination for kernel-based data parallel programming models such as OpenCL, CUDA, OpenACC, and C++AMP. These programming models cover many applications that demand high performance in mobile, cloud and high-performance computing. DySel systematically deploys candidate kernels on a small portion of the actual data to determine which achieves the best performance for the hardware-data combination. The test-deployment, referred to as micro-profiling, contributes to the final execution result and incurs less than 8{\%} of overhead in the worst observed case when compared to an oracle. We show four major use cases where DySel provides significantly more consistent performance without tedious effort from the developer.",
keywords = "Dynamic Profiling, Graphics Processing Unit",
author = "Chang, {Li Wen} and Kim, {Hee Seok} and Hwu, {Wen-Mei W}",
year = "2016",
month = "3",
day = "25",
doi = "10.1145/2872362.2872373",
language = "English (US)",
series = "International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS",
publisher = "Association for Computing Machinery",
pages = "667--680",
booktitle = "ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems",

}

TY - GEN

T1 - DySel

T2 - Lightweight dynamic selection for kernel-based data-parallel programming model

AU - Chang, Li Wen

AU - Kim, Hee Seok

AU - Hwu, Wen-Mei W

PY - 2016/3/25

Y1 - 2016/3/25

N2 - The rising pressure for simultaneously improving performance and reducing power is driving more diversity into all aspects of computing devices. An algorithm that is wellmatched to the target hardware can run multiple times faster and more energy efficiently than one that is not. The problem is complicated by the fact that a program's input also affects the appropriate choice of algorithm. As a result, software developers have been faced with the challenge of determining the appropriate algorithm for each potential combination of target device and data. This paper presents DySel, a novel runtime system for automating such determination for kernel-based data parallel programming models such as OpenCL, CUDA, OpenACC, and C++AMP. These programming models cover many applications that demand high performance in mobile, cloud and high-performance computing. DySel systematically deploys candidate kernels on a small portion of the actual data to determine which achieves the best performance for the hardware-data combination. The test-deployment, referred to as micro-profiling, contributes to the final execution result and incurs less than 8% of overhead in the worst observed case when compared to an oracle. We show four major use cases where DySel provides significantly more consistent performance without tedious effort from the developer.

AB - The rising pressure for simultaneously improving performance and reducing power is driving more diversity into all aspects of computing devices. An algorithm that is wellmatched to the target hardware can run multiple times faster and more energy efficiently than one that is not. The problem is complicated by the fact that a program's input also affects the appropriate choice of algorithm. As a result, software developers have been faced with the challenge of determining the appropriate algorithm for each potential combination of target device and data. This paper presents DySel, a novel runtime system for automating such determination for kernel-based data parallel programming models such as OpenCL, CUDA, OpenACC, and C++AMP. These programming models cover many applications that demand high performance in mobile, cloud and high-performance computing. DySel systematically deploys candidate kernels on a small portion of the actual data to determine which achieves the best performance for the hardware-data combination. The test-deployment, referred to as micro-profiling, contributes to the final execution result and incurs less than 8% of overhead in the worst observed case when compared to an oracle. We show four major use cases where DySel provides significantly more consistent performance without tedious effort from the developer.

KW - Dynamic Profiling

KW - Graphics Processing Unit

UR - http://www.scopus.com/inward/record.url?scp=84975230376&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84975230376&partnerID=8YFLogxK

U2 - 10.1145/2872362.2872373

DO - 10.1145/2872362.2872373

M3 - Conference contribution

AN - SCOPUS:84975230376

T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS

SP - 667

EP - 680

BT - ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems

PB - Association for Computing Machinery

ER -