Desktop virtualization has been around for quite a long time now. Users have been able to take advantage of compute infrastructure of high end machines in a virtualized fashion while enterprises have been able to better cost optimize the server utilization across users. But until now this virtualization has been limited to hardware resources such as CPU, RAM and the hard disk connected to the remote machines. There was no means of virtualizing the Graphics Processing Units (GPUs). So if a gaming application or a high graphics demanding simulation experiment had to be run on a virtual machine, it permitted only one instance of the virtual machine to access the GPUs while the others had to be wait until the GPU was freed up. There was no load distribution capability across multiple VM instances. So even if a computation hungry GPU with GFLOPs of performance was reay to take up more work, it was unable to do so. Not anymore! Welcome Nvidia Kepler GPUs.
At last month's GTC conference, Jen-Hsun Huang, Nvidia CEO, spoke about the latest Kepler architecture GPUs from Nvidia. This is supposed to be the world's first GPU having virtualization capability. The key feature driving the GPU accelerated desktop virtualization is the new VGX Hypervisor technology from Nvidia. It manages the GPU resources so as to allow multiple users access and share the GPU hardware for their computing needs. With this feature, the graphics processing on the remote machine can now be offloaded from CPU to GPU and hence CPU will be more free for other IO and task intensive operations. As a result higher user density across virtual machines is possible and a means to dynamically allocate resources as per the changing needs. A rich GPU accelerated experience can be delivered remotely thats been a wanting ask by lot of graphics and HPC applications so far.
Below is the GPU virtualization architecture using VGX Hypervisor as shared by Nvidia.
Another interesting bit is that Nvidia VGX works with Windows Server 2012 RemoteFX feature in order to accelerate Directx9 and Directx11 applications. RemoteFX shares the GPU across virtual machines. The VGX card is supposed to serve 100 RemoteFX users simultaneously.
GPU virtualization is exciting news for gamers and HPC users. Online games will get a major boost, as now gaming applications can be hosted on a cloud infrastructure(there are a few already) that has GPU virtualized set up. They will be able deliver amazing graphics performance, possibly as close to console driven. Ofcourse bandwidth and latency issues are there. The easy access to online games will bring in more users on board. HPC users have so far been constrained to on-premise GPUs in order to run their GPU accelerated applications. This has been a concern since buying GPU hardware and justifying the investments is still a daunting task. With virtualized GPUs and having them on the cloud eliminates this bottleneck in GPU adoption.