Nvidia’s GRID vGPU technology is natively supported in XenDesktop, so let me show you how this feature works and some tips that go along with it.
Citrix XenDesktop’s support for GPU virtualization allows virtual desktop users to run graphics-heavy applications with fantastic performance, gone are the days when your vdi is limited to mediocre graphics.
Citrix added the capability for XenServer 6.2 SP1 to virtualize the Nvidia GRID K1 and K2 graphics processing unit (GPU) boards. These virtual GPUs (vGPUs) are accessible by the XenDesktop 7.1 7.5 and 7.6 desktop and server OS.
Graphics applications have historically been a major headache or showstopper in virtual desktop adoption. CAD software like AutoDesk and AutoCAD, for example, can bring a Citrix XenDesktop VM and even its host server to their knees. As a result, Citrix admins have had to drastically tune down the quality of the graphics data in these types of applications. This translates to an inferior experience for the end user. Nvidia’s GRID vGPU technology puts VDI back in the game with powerful 3D graphics.
It had also become best practice for admins to disable the eye-candy elements of Windows. These range from displaying thumbnails in Explorer; menu fade-in, fade-out effects; Aero glass, or transparency, effects on the taskbar and windows; and things like Aero peek, which displays a thumbnail of a running application. With a vGPU available, which can be as little as one-eighth of a K1 board’s four GPUs, the user gets enough of a boost to make this kind of tuning less critical. The end result is a virtual desktop that is much more like a physical desktop in look and feel.
Installing the GRID vGPU feature
Nvidia certifies the GRID cards on a relatively small set of servers, and the GRID vGPU feature is available only on the XenServer hypervisor — specifically XenServer 6.2 with SP1 applied, and XenServer 6.5. UPDATE – Recently also available on VMware Vsphere 6.0. Once the GRID cards have been physically installed in the XenServer host, the Nvidia vGPU GRID Manager driver (available on the Nvidia website) needs to be installed next. This provides XenServer with a paravirtualized driver for the GPU.
In XenCenter, XenServer’s GUI management console, the GPU tab will display the available GPUs.
To split or not split the GPU
Citrix gives the admin the flexibility to use a full GPU for workloads that require the best performance or to slice up the GPU into smaller shareable vGPUs.
There are a few options that can be set on the server level:
Placement policy. This determines how each GPU will be assigned by the server to virtual machines (VMs). The choice is whether to keep as many vGPUs together as possible on the same GPU (maximum density) or to keep vGPUs on separate GPUs when possible (maximum performance).
Allowed vGPU types. A GRID GPU has several types available to the VM.
- Pass-through whole GPU: Provides the best performance with no sharing of the GPU
- GRID K260Q: Two users per GPU, 1920 MB of video memory allowing as many as four displays at 2560×1600 resolution
- GRID K240Q: Four users per GPU, 960 MB of video memory allowing as many as two displays at 2560×1600 resolution
- GRID K200: Eight users per GPU, 256 MB of video memory allowing up to two displays at 1920×1200 resolution
An admin can restrict the types of vGPUs that the system can use. Note that for server OS-based XenDesktop VMs (XenApp), only the GPU pass-through type is supported. (Now supported in windows 2012r2)
Getting our hand dirty! Creating the master image and configuring XenDesktop
In XenServer, a master-image VM template is created for use by XenDesktop to create or provision new desktops. You can assign a GPU from the allowed list to the VM.
Remember, for Windows to recognize the GPU, the Nvidia GRID display driver for the OS needs to be installed. The XenDesktop Virtual Delivery Agent (VDA) also needs to be installed on the VM. You should enable the HDX3-D Pro option to allow the HDX protocol to recognize the availability of the GPU.
Lastly, we need to configure XenDesktop to support the GPU. XenDesktop will need a Connection and Resource record for the newly vGPU-enabled XenServer. When you create this new pool, XenDesktop asks whether you want to use graphics virtualization, and you can set the type of vGPU desired. This should match what the vGPU was set to when you created the master VM.
The usual process of creating a XenDesktop Machine Catalog and Delivery Group then goes along. XenDesktop validates that the Machine Catalog can use the master image VM that you created earlier by matching GPU types in the Connection and Resource record.
By allowing an expensive GPU to be shared allows XenDesktop to be a more practical solution for even the highest-performance use cases. Plus, you can quickly adjust a desktop VM configuration, adding appropriate levels of CPU, RAM and graphics capability to match the job.