VirtCL: A framework for OpenCL device abstraction and management

Yi-Ping You, Hen Jung Wu, Yeh Ning Tsai, Yen Ting Chao

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

23 Scopus citations

Abstract

The interest in using multiple graphics processing units (GPUs) to accelerate applications has increased in recent years. However, the existing heterogeneous programming models (e.g., OpenCL) abstract details of GPU devices at the per-device level and require programmers to explicitly schedule their kernel tasks on a system equipped with multiple GPU devices. Unfortunately, multiple applications running on a multi-GPU system may compete for some of the GPU devices while leaving other GPU devices unused. Moreover, the distributed memory model defined in OpenCL, where each device has its own memory space, increases the complexity of managing the memory among multiple GPU devices. In this article we propose a framework (called VirtCL) that reduces the programming burden by acting as a layer between the programmer and the native OpenCL run-time system for abstracting multiple devices into a single virtual device and for scheduling computations and communications among the multiple devices. VirtCL comprises two main components: (1) a front-end library, which exposes primary OpenCL APIs and the virtual device, and (2) a back-end run-time system (called CLDaemon) for scheduling and dispatching kernel tasks based on a history-based scheduler. The front-end library forwards computation requests to the back-end CLDaemon, which then schedules and dispatches the requests. We also propose a history-based scheduler that is able to schedule kernel tasks in a contention- and communication-aware manner. Experiments demonstrated that the VirtCL framework introduced a small overhead (mean of 6%) but outperformed the native OpenCL run-time system for most benchmarks in the Rodinia benchmark suite, which was due to the abstraction layer eliminating the time-consuming initialization of OpenCL contexts. We also evaluated different scheduling policies in VirtCL with a real-world application (clsurf) and various synthetic workload traces. The results indicated that the VirtCL framework provides scalability for multiple kernel tasks running on multi-GPU systems.

Original languageEnglish
Title of host publication20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - Proceedings
PublisherAssociation for Computing Machinery
Pages161-172
Number of pages12
ISBN (Electronic)9781450332057
DOIs
StatePublished - 24 Jan 2015
Event20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - San Francisco, United States
Duration: 7 Feb 201511 Feb 2015

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
Volume2015-January

Conference

Conference20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015
CountryUnited States
CitySan Francisco
Period7/02/1511/02/15

Keywords

  • Device abstraction
  • Multitasking
  • OpenCL

Fingerprint Dive into the research topics of 'VirtCL: A framework for OpenCL device abstraction and management'. Together they form a unique fingerprint.

  • Cite this

    You, Y-P., Wu, H. J., Tsai, Y. N., & Chao, Y. T. (2015). VirtCL: A framework for OpenCL device abstraction and management. In 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2015 - Proceedings (pp. 161-172). (Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP; Vol. 2015-January). Association for Computing Machinery. https://doi.org/10.1145/2688500.2688505