Table of Contents
When computers were first being developed it was pretty common for each individual user to not have their own PC at their desk like they do today. Instead, there was a central mainframe that had all of the computing power that users accessed through what is called a thin client. Thin clients themselves have little to no computing power by themselves, but simply work as a way for a user to access the central mainframe. However, as hardware became faster, cheaper, and smaller, thin clients largely gave way to individual PCs that each user had sitting at their desk.
Interesting, in some demographics there is currently a push to remove individual PCs and go back to using a variation of thin clients to provide users with access to the computing power on a central server. The difference between the original method and the modern one is that the modern one works by providing the user with a virtual desktop that is intended to be nearly indistinguishable from a physical desktop. So even though the user just has a little thin client, it appears to them like they have the full power of a local PC. This method is currently being called Virtual Desktop Infrastructure or VDI for short.
VDIs are an incredibly complex topic once you get into the fine details so in this article we will largely be avoiding the in-depth technicalities of virtual desktops and instead focus on the basics of the technology and our experiences while using it. In this article we will first discuss the major VDI solutions that are currently available and how NVIDIA GRID works to add GPU acceleration to a VDI. Then, we will look at some of the more common advantages and disadvantages of virtual desktops. Finally, we want to give our general impressions on setting up and using virtual desktops for a variety of uses and - based on our experience - make some educated guesses as to whether virtual desktops truely are the future of computing or if they will likely remain a niche technology.
Desktop Virtualization Solutions
There are many different ways to create and access a virtual desktop ranging from simply having a virtual machine with remote desktop capabilities to full desktop virtualization and streaming solutions like Citrix XenDeskop and VMWare Horizon View. Since each method is designed for slightly different applications, each method has its own unique advantages and disadvantages.
If you simply need to access a handful of virtual machines and do not need GPU acceleration then using a free solution like Microsoft Remote Desktop or TightVNC may work just fine. These options are largely free, require very little network infrastructure, and are easy to setup. You simply install your software of choice on the client and host machines and use it to connect the client machine to the host machine. The main downsides to using something like this is that you have no power control over the host machine (you can turn it off, but can't turn it back on easily), most solutions do not support GPU acceleration, it requires a full PC as the client machine, and it is not very easy to manage if you are handling a large number of users and machines since you have to manually maintain as many virtual desktops as you have users.
If you need GPU acceleration or have a large number of users, then paid solutions like Citrix XenDesktop or VMWare Horizon are likely what you want. Both of these solutions support multiple kinds of desktop virtualization from simple remote desktop (only with power control and GPU acceleration) or by using what is called a master image that a virtual desktop can use as its base image each time it is booted. The advantage of using a master image mostly comes into play when you have a large number of users since you only need to maintain a single OS rather than dozens or even hundreds of individual operating systems. In addition, through the use of Active Directory you can make it so that it does not matter which virtual desktop a user logs into which means you only need as many virtual desktops as you have active users at one time rather than a separate desktop for each and every user.
However, be aware that both XenDesktop and Horizon require special licensing and a decent amount of infrastructure. In addition to the client machines and virtual desktops, you also need at least two servers for Active Directory, DNS, SQL, and the Desktop Delivery Controller (XenDesktop or Horizon View) and all the licenses that go along with them.
NVIDIA GRID for Virtual GPU Acceleration
GRID is the name of a group of video cards offered by NVIDIA that are designed exclusively for use in virtualized environments. When it comes to virtualization, you can't simply put any normal video card into a server and expect it to work. First, it has to support virtualization (most often VT-D) which right away eliminates GeForce video cards. Second, it has to be able to operate properly without a monitor attached. While most Quadro cards are designed to be able to do this with proper driver support, NVIDIA GRID cards are specifically made to operate without a physical monitor. In fact, they don't have any video outputs at all!
NVIDIA GRID cards are also unique in that every card actually has multiple GPUs on it. This has been done before on cards like the Geforce GTX 690 and the newer GeForce GTX Titan-Z, but those are designed for the two GPUs to be used at the same time in SLI. NVIDIA GRID, on the other hand, is designed for each GPU to be used individually by entirely different users.
|GRID K340||GRID K520||GRID K1||GRID K2|
|Target Market||High Density Gaming||High Performance Gaming||High Density Workstation||High Performance Workstation|
|Concurrent # Users*||4-24||2-16||4-32||2-16|
|Driver Support||GRID Gaming (Geforce)||GRID Gaming (Geforce)||
|Total GPUs||4 x GK107||2 x GK104||4 x GK107||2 x GK104|
|NVIDIA CUDA Cores||1536 (384/GPU)||3072 (1536/GPU)||768 (192/GPU)||3072 (1536/GPU)|
|GPU Core Clocks||950 MHz||800 MHz||850 MHz||745 MHz|
|Memory Size||4GB (1GB/GPU)||8GB (4GB/GPU)||16GB (4GB/GPU)||8GB ECC (4GB/GPU)|
|Max Power||225 W||225 W||130 W||225 W|
|PCI-E Version||x16 Gen3||x16 Gen3||x16 Gen3||x16 Gen3|
|~GPU Equivalent||4x GT 640 (OEM)||2x GTX 670||4x Quadro K600||2x Quadro K5000|
*The number of concurrent users depends on resolution and display quality
GRID cards are divided into two categories: GRID Gaming (K340 and K520) and GRID Workstation (K1 and K2). Both of these categories have one model that has four lower-end GPUs and a second model that has two high-end GPUs. If it helps, you can kind of think of each of these GRID cards as simply being multiple normal video cards (either GeForce or Quadro) crammed onto a single card. The specifications are not exact, but we listed the closest GPU equivalent for each of the GRID cards in the last row of the above chart. More than the GPU specs themselves, they key difference between the two lines is the driver support for each pair of cards. The K340 and K520 use drivers that have been optimized for games while the K1 and K2 use drivers optimized for workstation applications like AutoCAD, Premiere, Maya, etc.
In addition to the 2x or 4x GPUs on each card, these cards also support vGPU which is the virtualization of a GPU. Basically, it allows for a single GPU to be used by multiple virtual machines at the same time. For example: the GRID K340 has four GK107 GPUs which you could either have assigned individually to four virtual machines if you want maximum performance or you could make it a vGPU and allow up to 24 different virtual machines to use the GRID K340 at the same time. Performance would obviously be much lower per machine, but if you only need basic GPU acceleration it is a great option.
Finally, we want to point out the fact that right now all GRID cards are passively cooled. This does not mean that they run so cool that they do not need airflow, but rather that they are designed to be used in a rackmount with high front to back airflow like our Puget Peak 2U rackmount.