NVIDIA GRID – GPU Virtualization under Windows

(this is a guest post by Tenox)

I spent a day evaluating NVIDIA GRID K1 card, which is a GPU for high end, graphics intensive desktop virtualization (VDI) deployments. Otherwise called vGPU. What does it actually mean?

gridk1As you can see on the stock photo, the card doesn’t have VGA, HDMI, DVI, DP or any video output port what so ever. The output happens purely through Remote Desktop Protocol (RDP) extension called RemoteFX. On VMware and Citrix it works little bit different but I will be covering Windows / Hyper-v installation only.

The GRID K1 is somewhat similar to Quadro card so the driver is not your usual GeForce package, but the experience is quite similar nevertheless. Upon installation you see 4 different physical GPUs in Device manager:

grid1This works similarly to having multiple CPU cores that show up as separate processors in the OS. Here is a first fun fact: you can’t actually use any of these directly, as they simply have no output port and can’t display any graphics… Instead, you have to use Hyper-v with RemoteFX extension:

grid2Then for each guest machine, you add a RemoteFX graphics card as hardware:

grid3In order to use RemoteFX you need to Remote Desktop (RDP) to the guest machine. The protocol is fortunately available since version 7.1 so even Windows 7 can use it. However only Enterprise editions of Windows support it.

Inside the guest VM you see a virtual RemoteFX Display Adapter in the Device Manager:

grid4And as you can see Direct3D is available and enabled. Note that this is over RDP to a VM! The VM’s console curiously displays following message:

grid5Hard to show on static screenshots, but I have to say that RemoteFX user experience is noticeably better compared to a regular RDP. Everything works smoother and faster, scrolling pages, moving windows is a snap. You can play videos / YouTube, etc. But I was more interested in real use case which are high end 3D applications. So I proceeded to install Steam…

remotefx2Yes! this is GTA V running over Remote Desktop in a VM!

remotefx3The frame rate sucks quite considerably, even in safe mode, but it was playable and quite responsive (no lag). I actually spent couple of hours going through it and except for low FPS had no issues.

I also spun up this Wyse Thin Client terminal:

20151111_215651146_iOSdisconnected my RDP session and reconnected from the terminal… poof the game was still going:

20151111_232610662_iOSI even got sound out of the little thing.

I suspect that the low FPS is rather to do with small GPU horse power and vRAM assigned rather that with remote viewing or NVIDIA itself. Unfortunately in Hyper-v it’s impossible to control or fine tune assignment of GPU resources to a particular VM beyond simple on/off switch. The K1 card supports 32 users, so I was only getting 1/32th power and RAM. Perhaps I could have spawned 32 VMs with GTA. Or Call Of Duty multiplayer….

In ending notes I have to conclude that this is a rather interesting technology. According to NVIDIA, Cloud is future of Gaming. In fact they already have cloud game streaming service:

http://shield.nvidia.com/game-streaming-with-geforce-now

Beware of campers who now will be able to disconnect from online games for months at a time.

 

9 thoughts on “NVIDIA GRID – GPU Virtualization under Windows

    • Yes, provided that Windows 7 VM is of Enterprise edition. This technology has been around for quite a few years and K1 card in fact is old by today’s standard. It’s just that I never had a chance to play with it. The new Tesla M60 is supposed to be way better.

    • Oh wow I didn’t know you can get GPU instance on EC2. I will try this right away. I would probably still prefer to do RemoteFX rather than VPN and Steam Streaming. But I can try both.

Leave a Reply