VMware Horizon View graphics - vSGA vs vDGA
As VDI solutions become more and more mainstream for standard office environments, a new challenge appears. We can swap the bulky desktop and replace it with a small thin client, delivering Windows desktops from the datacenter. Enabling a more flexible way of working with free seating, working at home. But how about those ‘special’ users who always get a ‘special’ workstation with high end graphic cards, dual monitor setup working with AutoCAD, Bentley MicroStation, etc? Can we deliver the high end graphics needed for these applications to a VDI desktop also enabling the VDI benefits for these users?
I’ve been researching the possibilities for these users because one of our larger customers would like to do just that. In this post I would like to share some of the results.
Most VDI solutions on the market today, like VMware Horizon View and Citrix XenDesktop, all offer advanced 3D capabilities. VMware was the first company to virtualize 3D graphics with VMware Workstation and Fusion and with VMware vSphere 5.1 introduced this 3D technology in vSphere to be used in VDI use cases. As of 2011 VMware has been working closely with Nvidia to deliver high-end virtual workstations with 3D graphics support in VMware Horizon View by using their Quadro graphics adapters.
When VMware released View 5.0 they introduced SVGA and software 3D rendering which was a huge improvement for VDI graphics and a boost for VDI utilization. With the release of VMware Horizon View 5.2 VMware announced two new graphics features, vSGA vs vDGA.
CPU Rendering
VMware introduced software 3D rendering in View 5.0 primarily to enable Windows Aero desktops and applications requiring 3D without requiring a physical GPU. The main advantage of software 3D rendering is that it can run on any server hardware, no special graphics cards or server hardware is required. Because software 3D rendering is in essence CPU rendering [duh] this graphics mode impacts the VDI density on a server. There are no specific benchmarks on the software 3D rendering but because rendering is done on a (shared) CPU and not on a dedicated GPU is not suitable for real high-end graphical applications.
vSGA
Virtual Shared Graphics Acceleration (vSGA) uses the physical GPU’s installed locally in each vSphere host to provide hardware accelerated 3D graphics to virtual desktops. vSGA was introduced in VMware Horizon View 5.2 and it offers truly high performance graphics with maximum compatibility and portability. With this feature we can now offer VDI for some of those users with a ‘special’ workstation with high end graphic cards, dual monitor setup working with AutoCAD, Bentley MicroStation, etc.
vSGA allows you the ability to provision multiple VDI desktops to a single or multiple GPU’s. Graphics cards are presented to the VDI virtual machine as a VMware SVGA 3D graphics driver and the graphics processes are handled by an ESXi driver. The VMware SVGA 3D graphics driver is supported on Windows 7 and 8 virtual desktops for 2D and 3D and is used for both software 3D rendering and vSGA and provides support for DirectX v9 and OpenGL 2.1 applications. Graphics resources are reserved on a first come first serve basis so sizing and capacity is important to consider. vSGA is a great solution for users that require higher than normal graphics needs, rendering 1080p video, OpenGL, DirectX, etc.
Because the VMware SVGA 3D driver is used for both software 2D/3D rendering and vSGA a VDI virtual machine can dynamically switch between software or hardware acceleration without the need to reconfigure the virtual machine allowing vMotion even when providing hardware-accelerated graphics using vSGA.
vSGA supported graphics adapters (03-2014):
- Nvidia GRID K1
- NvidiaGRID K2
- Nvidia Quadro 4000
- Nvidia Quadro 5000
- Nvidia Quadro 6000
- Nvidia Tesla M2070Q
(notice the ‘missing K’ with the Quadro adapters, Nvidia K4000, K5000, K6000 are not supported)
vDGA
Virtual Direct Graphics Acceleration (vDGA) was introduced with VMware Horizon View 5.2 as a Tech Preview and is fully supported with VMware Horizon View 5.3. vDGA delivers real high-end Workstation Class 3D graphics for use cases where a dedicated GPU is needed and offers a true graphical workstation replacement for high performance GPU computing. Assigning a dedicated Nvidia GPU to the VDI virtual machine reserves the entire GPU to that desktop and enables for CUDA and OpenCL compute. vDGA supported graphics adapters are physically installed in the vSphere host and are assigned to virtual machines using VMware DirectPath I/O.
The number of VDI virtual machines per host is limited to the number of Nvidia graphics adapters in a vSphere host.
Because VMware DirectPath I/O is used vMotion, DRS, and HA are not supported with vDGA. Besides that, vDGA uses the Nvidia graphics drivers instead of the VMware SVGA 3D driver, so a VDI virtual machine cannot dynamically switch between software or hardware acceleration so NO vMotion. And last but not least, because of the nature of the configuration vDGA and Direct I/O assignment it is not a candidate for automated deployment using Horizon View Composer.
vDGA supported graphics adapters (03-2014):
- Nvidia GRID K1
- Nvidia GRID K2
- Nvidia Quadro K2000
- Nvidia Quadro K4000
- Nvidia Quadro K5000
- Nvidia Quadro K6000
- Nvidia Quadro 1000M
- Nvidia Quadro 2000
- Nvidia Quadro 3000M
- Nvidia Quadro 4000
- Nvidia Quadro 5000
- Nvidia Quadro 6000
- Nvidia Tesla M2070Q
Conclusion
vSGA and vDGA are great new features which offer the 3D graphics and video in VMware Horizon View. It further expands the use cases and users that IT can service with a VDI virtual desktops. In addition to expanding the target use cases, offering 3D capabilities will give users a more graphically rich experience in a VDI user desktop. But there are some caveats to consider.
Using vDGA will give you a true graphical workstation replacement for high performance GPU computing but a a cost. Because of the dedicated pinning of VDI virtual machines to a GPU the desktop density will be low and vSphere and Horizon View features like HA, DRS, vMotion and linked clones cannot be used. I’ve seen and played with this vDGA setup at VMworld 2013 and I was really impressed, 3D gaming, AutoCAD, NO problem!
vSGA will give you a better desktop density and you can still use VMware HA, DRS, vMotion and Horizon View Composer linked clones but at another cost. ‘Limited’ DirectX and OpenGL support, no CUDA support but far better graphics performance than software 3D rendering. vSGA is a great mix/trade of between software 3D rendering and vDGA.
So every solution has it pro’s and con’s but the real question is will you notice? I would advice you to do a Proof of Concept (PoC) to find out which solution fits your needs.
For more information on hardware accelerated 3D graphics please refer to the Graphics Acceleration in VMware Horizon View Virtual Desktops white paper.