NVidia's Hardware-Assisted GPU for VDI and Cloud
This year's Synergy was the most impressive and exciting one I have attended to date. Citrix CEO Mark Templeton delivered an epic keynote assisted by technology's most impressive "illusionist," Citrix Demo Officer Brad Peterson. I really like Mark and I really respect all his efforts to transform Citrix from a single-product, extremely Microsoft-reliant company, to a company that can stand on its own with several impressive products in mobility, cloud and networking.
Mark made a ton of announcements and talked about some technologies during his keynote and I will cover all the new stuff in this blog in the weeks to come.
Today, I want to focus on the NVidia hardware-assisted GPU virtualization, which is the coolest technology to hit XenServer and XenDesktop 7.
For the longest time, one of the biggest barriers to full desktop virtualization is that certain graphics-intensive workloads were not ideal candidates for virtualization. Many workarounds and options existed, but realistically none of them were real viable solutions. That is, until NVidia came along with its new NVidia technology that XenServer and XenDesktop 7 now support. While Citrix was first to adopt it, I am pretty sure that Microsoft and VMware will have support for it in the near future.
To understand the significance of NVidia's technology, it is important for us to understand the many different ways video is rendered for virtual machines, as follows:
- CPU-rendered graphics -- This is the traditional approach where the virtual machine leverages software to render the graphics on the physical CPU. It works something like this: Data flows from the physical GPU to the GPU memory, through the graphics driver and graphics API, into system memory, and then the CPU, where it is rendered. It's a slow, multi-step process that places a heavy load on the CPU and limits scalability and adoption of graphics-intensive applications.
- GPU pass-through -- To get around some of the inefficiencies of the latter traditional solution, hypervisors began supporting GPU pass-through directly to the VM. The problem here is that it is a 1:1 relationship between the VM and the physical GPU. This means scalability is limited to the number of supported physical GPUs on the host server and the ability of the hypervisor to support multiple GPU pass-throughs. Again, it's a good step in the right direction, but still very limited.
- API Intercept (software-based shared GPU) -- This is essentially an attempt at virtualizing the capabilities of the GPU and delivering it out to numerous sessions. In essence, this is the first attempt at GPU-sharing, except it is rendered entirely in software. The result is well suited for low- to medium-sized workloads such as Windows Aero, Google Earth, Office 2010 and even certain games and applications, albeit that is on test basis. Nonetheless, this approach also is limited in scalability and most certainly does not address graphics-intensive and CAD applications.
- Hardware-assisted GPU -- Fnally! NVidia delivers the first truly hardware-assisted GPU sharing technology that allows multiple VMs to share the physical GPU directly without putting any significant load on the CPU and without rendering in the CPU. The data flow goes from the physical GPU to the GPU Memory and is rendered immediately and delivered to the end user by passing the driver, graphics API, system memory and the CPU. Hardware-assisted GPU is not a new concept. Compute goes through almost verbatim the same cycle as GPU, beginning with fully virtualized CPU all the way to hardware-assisted CPU.
NVidia will offer its grid server cards in two flavors. The K1 graphics adapter packs four lower-powered, Kepler-based GPUs and 16GB of DDR3 memory supporting up to 32 VMs. Depending on how many graphics cards you can install in your server will determine the total number of VMs per sessions supported, but it is safe to assume that at least two graphics adapters can be installed for a total of 64 users. The K2 is geared towards even more hardcore users and packs two higher-end Kepler GPUs and 8GB of GDDR5 memory, which can support up to eight VMs (and again, depending on how many cards you can install in your host will determine the total number of VMs supported).
This is not only good news for VDI and graphically challenging workloads, it is also great news for cloud-based desktops, games and much more. As this technology matures even more, and as competition accelerates from AMD and others, the price will drop, thereby making this technology a defacto standard in any deployment some time in the future.
Are you excited about this announcement? Do you have workloads that have traditionally been challenging to virtualize? I am very eager to hear from you in the comments section here.
Posted by Elias Khnaser on 05/29/2013 at 1:27 PM