A team from the Georgia
Institute of Technology and HP Labs
in Palo Alto have written an 8 page paper on GPU accelerated virtual
machines.
The use of
virtualization to abstract underlying hardware can aid in
sharing such resources and in efficiently managing their use by high
performance applications. Unfortunately, virtualization also prevents
efficient access to accelerators, such as Graphics Processing Units
(GPUs), that have become critical components in the design and
architecture of HPC systems. Supporting General Purpose computing on
GPUs (GPGPU) with accelerators from different vendors presents
significant challenges due to proprietary programming models,
heterogeneity, and the need to share accelerator resources between
different Virtual Machines (VMs).
To address this problem,
this paper presents GViM, a system designed
for virtualizing and managing the resources of a general purpose system
accelerated by graphics processors. Using the NVIDIA GPU as an example,
we discuss how such accelerators can be virtualized without additional
hardware support and describe the basic extensions needed for resource
management. Our evaluation with a Xen-based implementation of GViM
demonstrate efficiency and flexibility in system usage coupled with
only small performance penalties for the virtualized vs.
non-virtualized solutions.
...
Our work is exploring
efficient virtualization mechanisms for
tightly coupled heterogeneous manycore systems, such as those (to be)
used in HPC environments. Specifically, we focus on platforms with
specialized graphics accelerators, and on such platforms, we are
seeking to efficiently execute virtual machines (VMs) that run
applications with components targeted for execution on GPUs. These GPU
components are referred to as kernels in the rest of this paper.
Our approach, GViM,
builds on existing virtualization solutions by
integrating novel mechanisms for improved support of GPU-accelerated
VirtualMachines (GViM). In comparison to prior work that has begun to
consider the virtualization of GPU resources, our novel contributions
address these platforms’ performance and flexibility needs, such as
those present in the high performance community:
- Improved
programmability and portability – In comparison to prior
work, GViM virtualizes the graphics accelerator at the level of
abstraction familiar to programmers, leveraging the CUDA APIs and their
open source counterparts. This not only makes it easier to run and port
standard applications, but it also relieves HPC application programmers
of concerns about the physical positioning of accelerators and about
driver and accelerator hardware versions. Deploying GViM requires
minimal modification to the guest VMs running on the virtualized HPC
platform.
- Efficient accelerator
virtualization – GViM-based GPU
virtualization offers low overheads and is competitive with kernels
running in guest OSs that have direct access to accelerator resources.
Attaining such high performance involves the careful management of the
memory and device resources used by GPUs.
- Coordinated resource
management – Using the GViM environment makes
it easier for applications to ignore the issues related to efficiently
sharing GPU resources. This is achieved by integrating methods into
GViM for managing an application’s joint use of general purpose and
accelerator cores. This paper establishes the importance of coordinated
resource management for general purpose and graphics cores.
If you are interested in
virtualization and GPGPU programming, this paper is a great read. You
can download it here: http://www.cc.gatech.edu/~vishakha/files/GViM.pdf.