In the early days of Citrix desktop virtualization, companies could provision applications and virtual desktops for the bulk of their employees and enjoy the benefits: centralized management, robust data security, and the flexibility of working from multiple locations and devices. There were, however, certain users who couldn’t take advantage of desktop virtualization right off the bat because they needed high-end 2D/3D graphics performance. Designers and engineers running graphics-intensive CAD/CAM, GIS, or PACS applications, for example, usually relied on dedicated high-end workstations with specialized graphics hardware.

Over time, Citrix has invested in technologies to improve performance for remote graphics virtualization. In 2006, Citrix and Boeing collaborated on Project K2 (no relation to the NVIDIA® GRID® K2 card) — a project that sought to improve OpenGL responsiveness for 3D CAD workloads (specifically Dassault Systemes’ CATIA). The project’s success set the stage for Citrix to expand remote 2D/3D virtualization capabilities to a much wider audience. In 2009, Citrix released HDX 3D Pro, a set of graphics acceleration technologies for XenDesktop® to enhance remote 3D application performance over LAN and WAN connections. The solution required a blade workstation for each user, however, to take advantage of GPU acceleration.

By collaborating closely with industry partners like NVIDIA, Citrix continued to make great strides in evolving graphics performance and desktop virtualization options. In 2010, Citrix introduced high-performance GPU sharing for DirectX-based applications, lowering the cost per seat for remote graphics users. In 2011, Citrix developed GPU pass-through capabilities in Citrix® XenServer® 6.0 (pass-through allows a given GPU to be dedicated to a single VM, supporting a 1:1 ratio of users to GPUs). In 2012, Citrix licensed NVIDIA’s VGX API to support direct GPU frame buffer access from XenDesktop, providing another optimization for remote 3D graphics workloads.

Now in 2013, Citrix and NVIDIA have collaborated on a GPU virtualization solution to enable true hardware GPU sharing in conjunction with NVIDIA GRID K1 and K2 graphics cards. On December 16th, Citrix released support for GPU virtualization using XenDesktop 7.1 HDX 3D Pro with XenServer 6.2 SP1 in the Citrix 3D Graphics Pack (see http://www.citrix.com/go/vgpu). This means that multiple users can share a single GPU, overcoming the 1:1 ratio to achieve higher user densities and create a more cost-effective remote 2D/3D virtualization solution. Tim Mackey’s blog post, “True hardware GPU sharing with XenDesktop and NVIDIA GRID arrives!”, does a great job explaining the difference between the dedicated access (GPU pass-through) and shared access (GPU virtualization) models. When deployed using a combination of Cisco, Citrix, and NVIDIA products and technologies, these models enable a great graphics-rich user experience for application and desktop virtualization.

To Share or Not to Share?

To help customers understand how best to apply these models in practice, Mayunk Jain of the XenDesktop Technical Marketing team has written a Design Guide titled “FlexCast Services: Virtualize 3D professional graphics”. The guide discusses typical user profiles, common use cases, and sample configurations to help you determine how to combine GPU pass-through and GPU sharing approaches in your own deployments.

To support the Design Guide effort, the Citrix Solutions Lab team conducted several rounds of performance tests, comparing GPU pass-through and GPU sharing performance under three standardized workloads. They installed NVIDIA GRID K2 graphics cards (two cards per server) in Cisco® UCS® C240 M3 servers. (Note that the NVIDIA GRID K1 card features 4 GPUs. A maximum of two K1 or K2 cards are supported per server.) Test engineers selected well-known graphics workloads — eDrawings Seadoo, Redway3D Turbine, and Unigine Tropics — representing a range of graphics-intensive applications (with low, medium, and high levels of intensity, respectively). Note that more application and workload test scenarios are under development as part an ongoing initiative to benchmark virtual graphic solutions.

In the GPU virtualization model, the virtual GPU (vGPU) manager time-slices access to the physical GPU to support sharing. The manager also assigns predefined vGPU profiles that allocate GPU framebuffer memory. The K100 and K200 profiles are targeted at lighter graphics workloads, while more robust profiles (such as the K240Q and K260Q) undergo the same application certification process as NVIDIA® Quadro® processors. In their testing, the Solutions Lab team used K200 and K240Q profiles (which allocate 256MB and 1GB of framebuffer memory, respectively, to each vGPU).

A single Hosted Shared Desktop (a.k.a., RDS use case) was associated with each physical GPU and typically hosted one to eight user sessions, depending on the particular test run. LoginVSI was used to launch the virtual environments and Powershell scripts were responsible for workload execution and data capture. A number of tools — Perfmon, GPU-Z, Citrix Windows Management Instrumentation (WMI), and video capture — were used to collect performance metrics and record the user experience. The team collected frame rates and GPU utilization values, and I’ll share these results in a follow-on blog.  Suffice it to say that each vGPU saw 25% more user density than GPU sharing running the same workload. As with most things, this early stage of building a standardized approach to workload test and validation may cause our results to vary somewhat as our methodology evolves over time.

Kudos go to Tony Pimper, Hector Jhong, and Santiago Cardenas in the Citrix Solutions Lab team for starting down the path of creating a test methodology for this new virtual GPU enabling technology. The lab’s testing is the first of many test scenarios that Citrix has planned for benchmarking remote 2D/3D graphics performance. I’m happy to say that I’ve been recruited as well to start a new series of performance and sizing exercises around the same technologies, and I’m looking forward to the opportunity of working closely with Cisco and NVIDIA in this effort.

— Frank Anderson, Principal Solutions Architect with Citrix Worldwide Alliances