Enabling OpenCL support for GPGPU in Kernel-based Virtual Machine

Tsan Rong Tien, Yi-Ping You*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

7 Scopus citations

Abstract

The importance of heterogeneous multicore programming is increasing, and Open Computing Language (OpenCL) is an open industrial standard for parallel programming that provides a uniform programming model for programmers to write efficient, portable code for heterogeneous computing devices. However, OpenCL is not supported in the system virtualization environments that are often used to improve resource utilization. In this paper, we propose an OpenCL virtualization framework based on Kernel-based Virtual Machine with API remoting to enable multiplexing of multiple guest virtual machines (guest VMs) over the underlying OpenCL resources. The framework comprises three major components: (i) an OpenCL library implementation in guest VMs for packing/unpacking OpenCL requests/responses; (ii) a virtual device, called virtio-CL, that is responsible for the communication between guest VMs and the hypervisor (also called the VM monitor); and (iii) a thread, called CL thread, that is used for the OpenCL API invocation. Although the overhead of the proposed virtualization framework is directly affected by the amount of data to be transferred between the OpenCL host and devices because of the primitive nature of API remoting, experiments demonstrated that our virtualization framework has a small virtualization overhead (mean of 6.8%) for six common device-intensive OpenCL programs and performs well when the number of guest VMs involved in the system increases. These results indirectly infer that the framework allows for effective resource utilization of OpenCL devices.

Original languageEnglish
Pages (from-to)483-510
Number of pages28
JournalSoftware - Practice and Experience
Volume44
Issue number5
DOIs
StatePublished - May 2014

Keywords

  • API remoting
  • GPU virtualization
  • KVM
  • OpenCL
  • system virtualization

Fingerprint

Dive into the research topics of 'Enabling OpenCL support for GPGPU in Kernel-based Virtual Machine'. Together they form a unique fingerprint.

Cite this