Understanding Virtual Desktop (VDI) GPU Technologies
It’s time for me to admit something; while I have been sharing quite a bit in blogs and research lately around high end graphic technologies with virtual desktops, I’ve been quiet on some fronts, specifically shared graphics technologies. The reason I haven’t said much is that I haven’t been impressed by most of the technology that’s been out there. I have known for the past two years that better technology is coming so I decided to focus on the good news (typically GPU pass through technologies) as it became public and not blog or tweet, or just rant about what I really want, because up until now what I want didn’t exist.
Organizations that I talk to who are interested in doing high end engineering workloads on virtual desktops have had very few options over the years. The options that have been slowly showing up for the past few years had very little scale (direct GPU mapping) or had a less than stellar performance. However with the release of NVIDIA’s GRID vGPU platform I’ve seen for the first time a solution that is designed to scale better and also deliver a rich user experience. I’ve spent the good part of a year constantly testing these technologies and with the release of XenDesktop 7.1 I’ve finally been able to run a working test that I can publicly demonstrate, so without further ado I give you GRID vGPU on XenServer vs vSGA on vSphere.
3D World Demo:
3D Model Demo:
Now with new technology comes more confusion so I wanted to end this blog with some generic ways to understand the different technologies that are out there:
- GPU pass through – All this does is pass the PCIe based GPU directly into the VM. The native graphic drivers for the GPU are installed and you should get the native graphic performance with that card.
- Shared Virtualized GPU – Instead of passing a GPU directly to the VM a hypervisor sits between the VM and the GPU. This is very similar to how we have been virtualizing the CPU for server/desktop virtualization.
- GPU Emulation – Unlike Shared Virtualized GPU there is no hypervisor layer that abstracts the physical hardware to the virtual hardware. Instead a resource manager carves up the GPU and passes it to individual VMs. It’s very similar to GPU pass through but in this model the GPU can be shared.
- Software-based GPU – Instead of having a hardware GPU a video driver is created that uses the CPU as the GPU, as you can imagine this doesn’t give very good performance for high end tasks but may be enough for simple things. (This is sometimes called software rasterization)
- RDS GPU Sharing – RDS GPU sharing uses GPU pass through (the first bullet) into a RDS VM, because RDS is a shared Windows kernel, multiple sessions can use the same GPU.
In the videos above I was comparing NVIDIA’s technology which I’ve created the new category of “GPU Emulation” to the shared virtualized GPU technology used in VMware vSphere. I created the new term because there are fundamental differences between a “virtualized GPU” and how the GRID vGPU technology actually works. I’m not going to get into these differences on the blog but you are more than welcome to call me if you are a Gartner client.
EDIT: It has come to my attention that my demo has created an assumption that XenDesktop running of vSphere is what’s causing the graphic performance issues. This is not the case, even if VMware’s Horizon View was running on top of vSphere the performance would be identical.