Test-Driving NVIDIA's GRID GPU Cloud Computing
Introduction, Grid Explained
Understanding NVIDIA GRID
NVIDIA's GRID is a virtual GPU technology that allows for hardware acceleration in a virtual environment. It's designed to run in concert with products from Citrix, VMWare, and Microsoft, and to address some of the weaknesses of these applications. The problem with many conventional Virtual Desktop Interfaces (VDIs) is that they're often either too slow for advanced graphics work or unable to handle 3D workloads at all.
If you've ever used Microsoft's Remote Desktop Protocol, a VNC program, or a service like LogMeIn, you probably have seen the problem (note: These are not VDIs -- but they're consumer applications that encounter many of the same latency and 3D support issues). Some applications -- namely, those that use an entirely software graphics solution, like VNC clients, can run 3D applications on the remote desktop, but either fail to pass back the actual image or render the displayed output in seconds per frame instead of frames per second. Others, like Microsoft's RDP, have much faster performance but use a custom driver architecture that doesn't allow for 3D acceleration.
Now, with GRID, NVIDIA is claiming that it can offer a vGPU passthrough solution that allows remote users to access a virtualized desktop environment built around a high-end CPU and GPU. The test systems the company is using for these 24-hour test drives all use a GRID K520. That's essentially two GK104 GPUs on a single PCB with 8GB of RAM.
The GRID Test Drive
NVIDIA's Test Drive is designed to give anyone a chance to see how the program works generally, but GRID is designed for corporate deployments across high-speed networks, not for cross-country Internet connectivity from a home account. The TD program is still in beta, the deployment range is considerable, and the test drives themselves are configured for a 1366x768 display at 30 FPS and a maximum available bandwidth cap of 10Mbit. For reference, that's more than my current Internet connection can reliably deliver in any case, which typically tops out around 8 Mbit.
Boot up for the first time, and this is what you see;
I fired up and installed Sandra 2014 and ran its CPU benchmark to get an idea of what performance looked like on the virtualized environment. Sandra detects that it's running on a standard Xeon, though it's worth noting that the server "forgot" my installation overnight. VDI's can be configured to retain user settings and data, so this is not a major issue.
Everything normal here. Performance is noticeably slower than a local host but here's the thing -- if you've ever actually used a remote access product, you know that a full screen refresh can sometimes take a few seconds. Turning off all UI elements and using minimum color can sometimes help marginally, but typical remote desktop software is mostly useful as a means of accessing a system for diagnostic reasons -- it's not an experience that anyone would ever mistake for "native" performance. Furthermore, Grid's target environment is corporate deployments with higher bandwidth and much lower overall latency. The end result is that Grid offers a fundamentally different experience, often with far higher quality. Let's look at how that plays out in more advanced 3D applications and video playback.