Recent technical strides in graphic processing unit (GPU) hardware have created increased interest in virtualizing graphics-intensive programs. With Soft 3D, vSGA and vDGA, Horizon View has increased VMware's GPU virtualization options.
Because VMware's products are so widely used and available, many virtual desktop infrastructure (VDI) shops can use GPU virtualization capabilities in Horizon View to take advantage of improved performance for graphics-heavy applications. But the VMware GPU virtualization options -- Soft 3D, Virtual Shared Graphics Acceleration (vSGA) and Virtual Dedicated Graphics Acceleration (vDGA) -- each work differently, and have varying benefits in different situations.
Soft 3D allows VMware ESXi-hosted virtual machines (VMs) to emulate a GPU in the software -- it doesn't need a video card. It doesn't offer high performance, but it provides a no-cost alternative for rendering applications that may require limited 3-D graphics capability. The display driver is installed through VMware Tools onto Windows desktops. And with Soft 3D, virtual desktops can use vMotion to relocate to another host server. Just know that the driver has limited compatibility with the DirectX 9.0c and OpenGL 2.1 standards.
Virtual Shared Graphics Acceleration
Targeted for task and knowledge workers who use light 2-D and 3-D applications, vSGA allows ESXi to use server-based hardware GPUs. It slices the GPU into virtual adapters and allocates video RAM up to 512 MB to each VM. Because vSGA uses the same display driver as Soft 3D, it's an easy transition from software to hardware acceleration. For example, if the GPU on the server exhausts all of its memory, the following VMs that power up can automatically use Soft 3D instead of failing.
VMware's vSGA is supported in Horizon View 5.2 and higher. To enable vSGA, install a graphics driver on the ESXi hypervisor that hosts the virtual desktops. Next, download the GPU's vSphere Installation Bundle available from Nvidia's website. (AMD also has a limited driver for its FirePro series GPU running on ESXi 5.5 servers.) When you're enabling vSGA, pay special attention to the desktop VM's hardware version. Older hardware can be limited to 128 MB of VRAM.
Once you have installed the GPU driver on ESXi, there are some options you can choose from to determine how VMs will use the GPU:
Automatic: This option provides some intelligence about resource availability and whether the hardware GPU can be used to help deliver an application. If the GPU is too busy, this setting transparently downshifts to use Soft 3D. There is a performance cost to moving between vSGA and Soft 3D, but with this setting, it doesn't require an administrator to make the switch.
Hardware: This setting means a VM is forced to use the physical GPU. A VM cannot power up or migrate on a host that lacks GPU resources. If you use this option, make sure there are adequate resources available; otherwise, you risk an outage when you reach GPU limits.
Software: This setting forces the VM to use software-emulated GPU, which can be useful because it prevents a desktop VM from using the hardware GPU, and it guarantees that you can migrate a VM to another server that may lack a GPU.
Disabled: With this option, no 3-D graphics, hardware or software are supported. You can use this setting to ensure certain VMs don't tax the server with unneeded graphical workloads when those VMs require only basic graphics capabilities.
The prime advantage of vSGA is user density. It can divide the GPU up until all its VRAM is exhausted. Its access to the hardware GPU also makes it a better performer than software emulation of a 3-D graphics card alone.
Virtual Dedicated Graphics Acceleration
Users who need workstation-like performance for their graphics-heavy applications will benefit from vDGA. It allows ESXi to directly access a GPU and present it to the virtual desktop session. Unlike vSGA, vDGA does not share the GPU. Instead, GPU power is dedicated to the virtual desktop that is using it.
After you physically install the GPU, the ESXi server recognizes it. Unlike vSGA , you don't need to load vendor-specific drivers onto the server. On the desktop VM, the GPU is added to the available hardware in the VM's settings. The native display driver is installed in the VM itself. Because the desktop VM uses the latest video driver, it has richer support for current DirectX and OpenGL standards.
vDGA is available in Horizon View 5.3, but it doesn't support vMotion because the VM is tied to its assigned servers' GPU hardware. It is also limited to the number of discrete GPUs in the server -- up to a maximum of eight. The advantage of vDGA is performance because it dedicates the GPU and has a well-honed display driver that supports higher-performing standards for DirectX and OpenGL.
Both vSGA and vDGA run at the hypervisor level on vSphere ESXi. Because Citrix XenDesktop is hypervisor-neutral, it can also use the features of vSGA and vDGA when XenDesktop VMs are hosted on the ESXi hypervisor.