This blog was written by Chhandomay Mandal, Solutions Marketing Director for XtremIO
Virtual desktops for task and knowledge workers are commonplace today. As we think beyond these use cases with next generation VDI desktops, the next frontier to conquer is the virtualized graphics desktops.
So far virtual desktops are delivering limited graphics experiences for demanding 3D applications. Yet, there are many business drivers for this to change. Couple of minutes of high definition video recording can generate gigabytes of data. From digital media entertainment applications like YouTube to collaboration applications with video messaging capabilities like Skype, from multi-billion dollar gaming industry to workstations-caliber applications in CAD, from radiologists looking at medical imaging to security analysts visualizing high resolution satellite data, the need for graphics-rich computing is pervasive today.
Every PC, tablet, smartphone, or laptop has Graphics Processing Unit (or GPU) for graphics acceleration. So why shouldn’t we have GPUs for virtual desktops?
Figure 1: Graphics Application Requirements by User Type
Now, let’s take a look at the graphics requirements based on use cases. On the X-axis, as we move from left to right, the users are using not only more applications but also their individual applications are becoming more resource-intensive. On the Y-axis, we have the graphics requirements. For example, the rendering quality, interactivity, 2D/3D nature of the application as well as cost/seat for meeting the needed graphics quality.
We start with the task workers, for example call center workers. Here we have few basic applications and the graphics requirements are moderate to low.
Next we move into knowledge workers. Here it is worth mentioning that mainstream productivity apps like Microsoft Office 2013 actually demand GPU capabilities, like DirectX 10 compliance. And the emerging influx of rich HTML5 content on the web relies on having a capable GPU under the hood of whatever device is doing the browsing. Add in applications like QuickTime and Flash, and you are starting to see increased need of interactive, high quality 2D and 3D rendering.
Then we move into power user category. These are the users who need to run products like Adobe Creative Suite – Photoshop, InDesign, Illustrator, Flash Builder, and Dreamweaver; analysts looking into Google Earth or applications delivering high resolution 3D models from satellite imagery; product managers using PLM applications, weather forecaster visualizing data from WXSIM weather simulator.
Finally, we are into the designer territory – the gold standard of graphics requirements. They are the most demanding user group in the organization. They create, view, manipulate, and render complex 2D/3D graphics using applications like Autodesk, Bentley, PTC and Solidworks. And the data sets of these designers are typically huge.
Think of a CAD engineer designing an auto part. The workflow is something like this. At the beginning of the day, he transfers 100GB files of the model; then edits the model on his very expensive graphics workstation that meets his needs of no-compromise visuals using CATIA software; when he is done editing the model, he saves it locally and then transfers back again 100GB files for design reviewers to take a look at. If we can have a virtual desktop that can meet the graphics rendering requirements of applications like CATIA, then the benefits we get by just removing the 100GB plus file transfers multiple times a day are tremendous – it means faster design cycles leading to quicker introduction of new products – with the added benefits of data security as the data never leaves the confines of the data center.
Graphics Virtualization Options
How do we effectively meet the varying graphics requirements of different applications across the many use cases?
Figure 2: Graphics Rendering Options for Virtualized Desktops
The first option is doing the graphics acceleration in software without any GPU in the virtualized server. An example will be Software 3D Renderer or Soft3D. Here each VM has a graphics driver provided by the VDI platform software, and the graphics API calls are processed by the software graphics accelerator implemented at the hypervisor layer. With no GPU present, the CPU has to process all of the workload, including all the graphics. It works fine only for the applications that have little graphics rendering requirements, and it can’t deliver an interactive user experience with anything but the simplest graphics content.
Shared Graphics Acceleration (vSGA)
Next comes Shared Graphics Acceleration (also called vSGA). GPU sharing relies on VDI software to provide a layer of abstraction that lets the desktop application behave as though it has its own physical, dedicated GPU. On the back-end, the server’s GPU and the native NVIDIA GPU driver thinks that it is responding to one host. The VDI hypervisor running on the server intercepts graphics API calls and translates commands, drawing contexts, and process-specific address space, before passing along to the native graphics driver. After processing, the information is sent back to the VM. VMs do not have direct access to the GPU.
The advantage of GPU sharing is its scalability, as 10s of VMs can get GPU access for line of business applications run by knowledge workers. The downside of this solution is that:
- It doesn’t meet the requirements of high-end graphics where complex model manipulations are needed;
- GPUs can become bottleneck as many users share the same GPU;
- And finally, application compatibility issues are common. For example, an application might be leveraging features of a more recent version of OpenGL graphics APIs than those are supported by the VDI software’s graphics translation layer.
Dedicated Graphics Acceleration (vDGA) / GPU Pass-through
To meet the demands of the designer-class graphics-intensive applications, the often used technique is GPU Pass-through or dedicated graphics acceleration. Here the VM has a 1:1 relation with a GPU and through the hypervisor, has full and direct access to the GPU. The native NVIDIA graphics driver is installed in the VM. For example, a VDI server with 2 NVIDIA GRID K1 boards (4 GPUs per board) can support 8 simultaneous users. The solution offers full GPU performance and high-end graphics needed for designers and engineers. The downside of the solution is that:
- It is hardware dependent
- Live migration of VMs with pass-through devices are not supported, and
- It is a quite expensive solution as the number of virtualized graphics desktops a server can host is the same as the number of GPUs it has.
The other issue so far is that there is no solution for the middle ground. Shared Graphics Acceleration doesn’t meet the graphics requirements for this category, and Dedicated Graphics Acceleration is cost-prohibitive for this class of users.
GPU Virtualization / vGPU
GPU virtualization or vGPU from NVIDIA brings the full benefits of hardware accelerated graphics to virtualized solutions. Here we get the benefits of GPU sharing as the NVIDIA GPU is shared by multiple VMs, and at the same time the VM gets the native graphics driver access to the GPU. With the NVIDIA GRID vGPU technology, the graphics commands of each virtual machine are passed directly to the GPU, without translation by the hypervisor. This allows GPU hardware to be time-sliced to deliver similar performance as in the dedicated graphics model.
Figure 3: GPU Virtualization
IT managers can easily assign the optimal amount of graphics memory and deliver a customized graphics profile to meet specific needs of each user. Every virtual desktop has dedicated graphics memory, just like they would at their desk, so they always have the resources they need to launch and run their applications.
GRID vGPU enables up to eight users to share each physical GPU, assigning the graphics resources of the available GPUs to virtual machines in a balanced approach. Each NVIDIA GRID K1 card has four GPUs, allowing 32 users to share a single card. Each NVIDIA GRID K2 card has two GPUs, allowing 16 users to share a single card.
Figure 4: Storage Requirements for Virtualized Graphics Desktops
The performance requirements for the underlying storage platform are an order of magnitude higher for desktops with graphics intensive applications. We are used to talking about 20-40 IOPS per desktop, but look at the snippet from a vGPU technical documentation on sizing guidelines. IOPS for designers can range from 200 to 1,000 per VM. This is related to typically large data sets that these graphics intense applications deal with. Additionally, what are not in the chart are application response times that these classes of users expect – there needs to be absolutely zero lag as the designer tries to zoom in or move around a model. All of these boil down the criticality of having a storage platform that can deliver not only high performance but also with consistently low latency, whether the model is being read, edited or saved and whether there are 100 or 1000 designers on the virtualized system.
The End-to-End Solution
Figure 5: VMware/Citrix VDI Platforms, NVIDIA and XtremIO Delivering Truly Virtualized Graphics Desktops
The potential for virtualized graphics desktops has been promised for some time, but no storage architecture could deliver the consistent scale-out performance required to meet so many combined SLAs. Finally, by marrying new solid state technologies with truly unique scale-out in-memory metadata architecture, XtremIO is that storage platform for all the desktop virtualization objectives.
XtremIO’s clean sheet design with innovative use of Flash technologies for its unique, true N-way active-active scale out architecture, advanced in-line, all the time data services to make it cost-effective, unique copy data management coupled with automated self-service workflows for application administrators enable organizations to not only deliver truly graphics-intensive virtualized desktops but also transform their businesses.
Using NVIDIA GRID vGPU and XtremIO, today organizations can enable distributed teams to collaborate in real time, centralize and secure mission-critical graphics data sets and enjoy workstation-class graphics on laptops, tablets and mobile devices.
In the next post, I am going to share examples of how XtremIO is enabling virtualized graphics desktops today in many customer deployments.