After Nvidia CEO Jen-Hsun Huang made a surprise guest appearance with Mark Templeton on the Citrix Synergy stage, it seems like all everyone talks about is virtualization of high-end professional graphic workloads. Indeed, this has been one of the most exciting innovations in VDI over the past couple of years. Unlike the past, where expensive GPU resources were locked to a user, technologies such as HDX 3D Pro in XenDesktop 7 today allow sharing of GPU among multiple users, apps, and desktops.
This technology spans two rather distinct areas of expertise: high-end graphics and virtual desktop delivery. Folks interested in evaluating this technology generally have a background in one or the other, but not both. At trade-shows this year, we met people who came with deep knowledge of Nvidia hardware and its interaction with graphics software, for instance, but questions about Citrix and VMware infrastructure. Similarly, terms such as OpenGL rendering and API intercept might be new to many Citrix admins who want to deliver rich-graphics in their environment.
So, we decided to create a set of Reviewer Guides that are not aimed at the experts. Our goal was to handhold people with diverse technical backgrounds through the entire process of evaluating HDX 3D Pro.
Reviewer’s Guide for GPU Sharing on XenDesktop and XenApp
This set of easy-to-follow instructions assumes that the Reviewer has a solid understanding of networking concepts, server hardware, and Windows Server administration. However, advanced knowledge of Nvidia and Citrix products is not a requirement to use these guides and get the HDX 3D lab running. For simplicity, we have divided this guide into multiple parts.
In the first guide, we cover physical installation of GPU cards in a server, and how to enable GPU pass-through in XenServer 6.2. High-end graphics apps running on Windows Server VMs can share GPU among multiple user-sessions when delivered using XenDesktop 7 Apps or XenApp 6.5 FP2.
In part two, we see a similar use case on VMware vSphere platform. It describes the steps to enable GPU pass-through feature in vSphere 5.1, called virtual Dedicated Graphics Acceleration (vDGA). We also see how to set up XenDesktop 7 Apps and access 3D graphics using Citrix Receiver. You can get free 90-day trial licenses for Citrix XenDesktop from www.citrix.com/tryxendesktop
Part three walks through the steps to deliver virtualized access to a class of high performance graphics-intensive applications, which haven’t previously been considered virtualization friendly. Known as the vGPU feature in XenServer, this will be released as a tech preview later this month. Tim Mackey’s blog has some interesting details.
Part four looks at a different use-case on VMware vSphere, where the GPU is shared between several desktop VMs using software emulation. Called virtual Shared Graphics Acceleration (vSGA), this feature allows desktops published in XenDesktop 7 to deliver hardware-accelerated graphics apps on a vSphere platform.
The focus of these guides is on the latest GRID K1 and K2 cards from Nvidia, and the latest XenDesktop 7 from Citrix. XenDesktop 7 is a single platform that unifies the power of Apps delivery (old XenApp) and Virtual Desktops. Most references to XenDesktop 7 Apps in this guide apply to XenApp 6.5 Feature Pack 2. GRID compatible hardware (we used Dell R720) is required to support the power and heat requirements of the GRID cards.
An important note about shared GPU performance on desktop OS (VDI)
It is good to understand the different ways of achieving GPU virtualization for desktop OS (such as Windows 7 or 8 ), since they have a direct performance impact on the evaluation.
|VMware’s vSGA uses custom VMware drivers to share GPU among VMs, with feature limitations||Citrix vGPU uses standard Nvidia drivers to provide true full-featured GPU virtualization|
VMware (vSGA) uses a custom VMware driver to intercept the API calls from graphics applications to the GPU. This isolates the actual graphics card from the VM layer, so different VMs see a virtual graphics card from VMware instead. That virtual card in turn multiplexes the graphics commands to physical GPU and back. The flip side is that the apps lose advantage of many graphic functions only provided by the original hardware driver (Nvidia in this case). For example, any app that requires OpenGL 4.3 will fail on vSGA since it can only support up to OpenGL 2.1 at this time. Graphics vendors such as Nvidia and AMD have taken their drivers through rigorous testing and certification by leading application vendors. It is a significant concern that these vendors have not certified VMware vSGA driver. This breaks performance and warranty for high-end applications that are mission-critical for most customers in this market.
These limitations are removed in upcoming vGPU solution from Citrix that uses the complete Nvidia stack (Nvidia hardware, Nvidia drivers, and Nvidia GRID manager) on XenServer. Applications get full advantage of the physical card from Nvidia, supporting latest OpenGL and DirectX drivers such as OpenGL 4.3 and DirectX 11. These are standard drivers that can be updated from Nvidia’s website as part of regular update cycles. Unlike vSGA, there is no waiting for proprietary drivers every time Nvidia enhances their GRID GPU features. Application vendors have already certified, or are actively working with Nvidia and Citrix to certify themselves, on this platform.
(Click the image above for larger view) The table above summarizes at a high-level, the key differences between the XenServer and vSphere technologies.
Please remember that Citrix XenDesktop 7 is hypervisor agnostic, and supports both VMware’s vSGA as well as XenServer’s vGPU (tech preview in Q3).
Let us recap the alternatives that XenDesktop 7 supports for GPU sharing. The respective Quick Start guides on Citrix.com are again hyper-linked to each of the options below:
1. GPU sharing with Windows Server RDS workloads – Multiple user-session sharing of GPU, for both OpenGL and DirectX 2D\3D workloads. This is available with XenApp 6.5 Feature Pack 2 as well. It is supported on bare metal or hypervisors that supports GPU pass-through, namely:
- XenServer GPU pass-through
- vSphere dedicated graphics acceleration (vDGA)
- Hyper-V does not have GPU pass-through at this time
2. GPU sharing with Windows Desktop VDI workloads– provides full desktop (e.g. Windows 7 or Win8) to each user, suitable for tier-1 users with complex and demanding design requirements
- XenServer GRID vGPU (tech preview later this month)
- vSphere shared graphics acceleration (vSGA)
- Hyper-V RemoteFX, using RDP protocol
Please download and share these guides to quickly get started on your review of virtualization of professional graphics. If you have any feedback or questions, feel free to reach us by email or Twitter (@mayunkj or @pushpalray)