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

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

Research output: Contribution to journalArticlepeer-review


The rising pressure for simultaneously improving performance and reducing power is driving more diversity into all aspects of computing devices. An algorithm that is well-matched 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)
Pages (from-to)667-680
Number of pages14
JournalACM SIGPLAN Notices
Issue number4
StatePublished - Apr 2016


  • Dynamic profiling
  • Graphics processing unit

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'DySel: Lightweight dynamic selection for kernel-based data-parallel programming model'. Together they form a unique fingerprint.

Cite this