VMware Academic Program
Committed to strengthening VMware’s relationship with the academic and research communities.

GPU Virtualization on VMware’s Hosted I/O Architecture

Download PDF

GPU Virtualization on VMware’s Hosted I/O Architecture

Modern graphics co-processors (GPUs) can produce high fidelity images several orders of magnitude faster than general purpose CPUs, and this performance expectation is rapidly becoming ubiquitous in personal computers. Despite this, GPU virtualization is a nascent field of research. This paper introduces a taxonomy of strategies for GPU virtualization and describes in detail the specific GPU virtualization architecture developed for VMware’s hosted products (VMware Workstation and VMware Fusion). We analyze the performance of our GPU virtualization with a combination of applications and microbenchmarks.


Micah Dowty, Jeremy Sugerman

2 thoughts on “GPU Virtualization on VMware’s Hosted I/O Architecture

  1. Auth

    I can not thank you enough for your very sweet reeviw of Preset Viewer. My husband and I have worked extremely hard to fill a need with the program. We are completely honored and humbled to be featured on your blog!!! Mac users we know we need a Mac version but as a tiny company, we are trying to figure out the logistics to make it happen. We haven’t forgotten you!

  2. Jagdish S. Varma

    We need to implement Virtualization in GPU environment. To achieve this they are doing the following:

    1. Server installed is “ASUS ESC-4000”. Technical catalog of product is attached for your ref.
    2. Installed 2 x Xeon 5650 E5650 ( 6 cores, 12MB Cache, 2.66 GHz, 6.40GT/s Intel® QPI) with 48.0 GB DDR3 ECC Registered RAM.
    3. Installed the VMware ESXi server version 5.0 – This installation is done and tested to be working fine.
    4. Further install multiple Virtual machines – Ubuntu server ver. 10.0 64 bit is installed and configured to work. The installation is successful and the normal GPU computing CUDA 4.0 drivers are installed and tested to be working fine.
    5. Similarly 3 to 4 Virtual machines are installed with a combination of Ubuntu 10.10 64 bit server & Windows 7 professional 64 bit operating systems.
    6. Since the GPU cannot be used in a shared mode, they need to assign the GPU as a “Non-Shared” resource to a Virtual Machine that will be running the GPU application. The following is done:
    a. In the server BIOS, the “Intel VT-d” (Virtualization Technology for Directed I/O) feature is set to “Enabled”.
    b. In the Virtual Host server configuration, in “Advanced setup”, there is an option to select a device to permanently assign to a selected VM.
    c. ISSUE No. 1: When the list of installed devices is shown:
    i. the M-2070 does not show. It only shows as “Nvidia Chipset “
    ii. If we add in a Quadro FX 600 (low profile display card) it shows in the list, but does not show as a Quadro FX 600 card. It shows only as a “Nvidia Chipset “
    iii. If we add in a C-2050 card, the list shows the installed device as a C-2050.
    iv. We have tried this with the C-2050 + M-2070 installed and also without the M-2070 installed (Only C-2050). This was done for testing only and the C-2050 was removed later on.
    d. ISSUE No.2: Not able to complete the resource assignment process:
    i. Since we can see the C-2050 in the list, we selected the GPU device “C-2050” and choose to assign it as a permanent resource for VM 1 running Ubuntu server 10.10 64 bit OS + CUDA SDK 4.0. The selection process is completed and the GPU device has a RED asterisk marked against it which indicates below that the device needs to be restarted by rebooting the VM1 to complete the resource assignment.
    ii. When we restart the VM, we can see that the GPU device “C-2050” is still listed with a RED asterisk mark and once again there is an indicator below the device which mentions that the VM needs to be re-booted to complete the resource assignment task. This has been tried several times with no results.


Leave a Reply

Your email address will not be published. Required fields are marked *