From the early days of desktop virtualization, the issues around heavy graphics users have blockaded VDI administrators’ efforts to bring these users into the fold.
Protocols such as Citrix HDX, Microsoft Remote Desktop Protocol and VMware’s PCoIP have advanced to improve the performance of packages such as computer-aided design (CAD), 3-D modeling, photo and video editing, but they often fall short when presenting those kinds of applications – such as Photoshop or AutoCAD for example.
And by no means are the graphics-intensive use cases limited to photo editors and 3-D illustrators. In medical and dental settings, accessing high resolution imaging is an everyday occurrence. Even common end-user applications like Google Earth could bring a high-powered desktop virtualization host to a screeching halt. With no GPU, the server's CPU has to bear the brunt of the graphics load.
Often, IT system administrators have had to "tune down" the applications appetite for resources to get it to coexist with other user sessions. They reduce resolutions, limit color depth, and lower video frame rates. These compromises make the experience less rich and inferior to what a user could get by running the workload on a PC. That’s why IT departments frequently punted and stuck with traditional physical workstations or deployed expensive "blade PCs" for all but the most casual users. There was no escaping the need for a PC with a high-powered physical graphics card to feed resource-hungry applications.
Virtual GPU support in XenDesktop, View
Fortunately, there have been significant technical advances to give virtual desktops greater access to server-based GPU hardware. It is now possible to virtualize the GPU so it’s shared conceptually such as processor, RAM and networking hardware are today by hypervisors. The virtual GPU can be carved into smaller pieces for a higher density of desktop sessions to be used with greater efficiency.
For some VDI users, the virtual slice still isn't enough horsepower. For these users, a GPU can be passed through directly to the virtual desktop session from the hypervisor. The pass-through GPU is provided with less overhead because it does not have to be virtually presented. The tradeoff to this approach is that the GPU can no longer be shared with other sessions as it is dedicated for this purpose.
Numerous vendors have taken advantage of GPU technology such as Nvidia’s to develop virtual GPU support in their desktop virtualization platforms. Here is a rundown of those products:
Citrix vGPU. With the recent release of XenDesktop 7.1 and XenServer 6.2 Service Pack 1, Citrix has included native support for Nvidia GRID GPU cards with its vGPU technology. Nvidia now ships GRID K1 and K2 GPU cards for select servers from Cisco, IBM, HP, Nutanix and others. The K1 card includes four entry-level GPUs with a total of 768 CUDA cores. The K2 card includes two high-end GPUs with 3072 CUDA cores. The K1 is marketed for higher user densities and the K2 is optimized for fewer users but at much higher performance levels.
A XenDesktop virtual machine can access vGPUs of various memory sizes allowing for higher resolutions and additional displays, up to a maximum of four. Dedicated pass-through GPUs are supported for server OS-based and desktop OS-based sessions. A K1 card can support a maximum of 32 active vGPUs or four pass-through GPUs. A K2 card can support a maximum of 16 active vGPUs or two dedicated pass-through GPUs. Nvidia display drivers are loaded on the desktop VMs and support DirectX and OpenGL standards. XenDesktop server OS desktops, formerly known as XenApp, support GPU pass-through only.
VMware vSGA. VMware's Horizon View supports sharing GPUs on ESXi servers with Virtual Shared Graphics Acceleration (vSGA). Unlike Citrix's vGPU, vSGA uses a proprietary driver instead of a vendor native one. This is potentially an issue for some applications like AutoCAD and SolidWorks that don't officially support this display driver. VMware vSGA supports AMD's ATI GPU in addition to the Nvidia GRID models.
For high-end graphics users, VMware provides Virtual Dedicated Graphics Acceleration (vDGA) on ESXi servers equipped with GRID cards. Similar to the Citrix pass-through GPU on XenServer, this employs the well-supported Nvidia driver.
Microsoft. With the release of Windows Server 2012 and 2012 R2, the RemoteFX feature supports vGPU sharing on Hyper-V hosted virtual machines. The hosting Hyper-V vGPU server requires a SLAT-capable processor, a DirectX 11.1 compatible GPU and a Windows Display Driver Model 1.2 compliant driver. Supported Remote Desktop Services clients are limited to Windows 7 Service Pack 1 and Windows 8 Enterprise clients. Remote Desktop Session Host sessions are not supported for vGPU.