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 language | English (US) |
---|---|
Title of host publication | ASPLOS 2016 - 21st International Conference on Architectural Support for Programming Languages and Operating Systems |
Publisher | Association for Computing Machinery |
Pages | 667-680 |
Number of pages | 14 |
ISBN (Electronic) | 9781450340915 |
DOIs | |
State | Published - Mar 25 2016 |
Event | 21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016 - Atlanta, United States Duration: Apr 2 2016 → Apr 6 2016 |
Publication series
Name | International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS |
---|---|
Volume | 02-06-April-2016 |
Other
Other | 21st International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2016 |
---|---|
Country | United States |
City | Atlanta |
Period | 4/2/16 → 4/6/16 |
Fingerprint
Keywords
- Dynamic Profiling
- Graphics Processing Unit
ASJC Scopus subject areas
- Software
- Information Systems
- Hardware and Architecture
Cite this
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 proceeding › Conference contribution
}
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 -