It’s not exactly a secret that planning a VDI deployment involves a lot of work, but one aspect of the planning...
process that is easy to accidentally overlook is the vGPU.
A virtual graphics processing unit (vGPU) is the component that renders graphics on virtual desktops. Because virtual desktops run on a server rather than on a physical PC, most of the graphical processing takes place on the server side. The device a worker uses to access his virtual desktop has a physical GPU, but it only displays the virtual desktop environment. It is the server’s vGPU that really does the graphical heavy lifting.
The most important thing to know about vGPUs is that there are a number of options available. You must base your vGPU selection on your virtual desktop’s needs, and on the hypervisor’s capabilities. If for example, all of your employees use their virtual desktops for word processing, accounting and other mundane business tasks, then you probably won’t have to put a tremendous amount of thought into your GPU options; the virtual desktops don't run graphically intensive applications. If on the other hand, you have virtual desktop users who do computer-aided design (CAD), video editing or 3D rendering, then vGPU selection it very important.
Generally speaking, there are a few different options for virtual GPUs. One of the most common, but poorest-performing options involves allowing your hypervisor to emulate a GPU. This type of emulation occurs when the host server does not have a physical GPU that can be used for virtual desktop video processing.
In those situations, the hypervisor uses the server’s physical processor to handle all of the graphical processing. The advantage to using this approach is that it is really easy to implement. The disadvantage however, is that the graphical instructions place a significant load on the server’s physical CPU. In some cases, this extra load can cause a CPU bottleneck. Even if a CPU bottleneck does not occur, graphical performance can suffer because an emulated GPU can't render graphics as efficiently as a physical GPU.
Another option involves using GPU pass through. GPU pass through delivers the best performance for virtual machines that are running graphically intensive workloads. In fact, the level of performance that you can deliver with this method is similar to what you could achieve if the virtual desktop were an OS running on a physical PC with its own dedicated GPU.
GPU pass through requires a hypervisor that can perform GPU redirection. NVIDIA GRID for example is certified to work with Citrix XenDesktop and VMware Horizon View. The hypervisor acts as a proxy, relaying graphical instructions from a virtual desktop to a physical GPU. Although it is the hypervisor that makes the connection between the virtual desktop and the GPU, the virtual desktop must have an appropriate video driver installed at the guest-OS level to utilize the physical GPU.
Although GPU pass through delivers the best graphical performance for virtual desktops, it does have a significant disadvantage. Because a physical GPU is mapped directly to a virtual desktop there is a limit to the number of virtual desktops that can take advantage of GPU pass through. If a host is equipped with four GPUs for example, only four virtual desktops will be able to use GPU pass through. Furthermore, GPU pass through can complicate high availability because a destination server might not be equipped with enough physical GPUs to accommodate a virtual desktop that has just failed over.
Another, usually more practical option is GPU sharing. Just as a host server shares physical CPUs among virtual machines, GPUs can be shared among virtual desktops. GPU sharing typically delivers much better graphic performance than using software emulated GPUs, but it does not deliver the level of performance that you can expect from a dedicated GPU.
Shared GPUs work very similarly to GPU pass through in that the hypervisor acts as a proxy, passing graphical information to the GPU. The difference is that because multiple virtual desktops share a GPU, a time slice mechanism makes sure that each virtual desktop receives an appropriate level of GPU resources. Some vendors take this a step further and allow for the creation of usage profiles. This allows the users who run more graphically intensive workloads to receive a greater percentage of GPU time.
Comparing vGPU support from VMware and Citrix
Three vGPU options from VMware
Protocol vs. GPU offloading