As a Cisco Technical Solutions Architect working directly with our customers, partners, business units and watching the evolution of VDI, its becoming more and more apparent that things are about to change in a major way.
The model in which we used to sell, design and deliver VDI was based on the environment that it was formed around. We are moving beyond the “just get it to work” phase and are getting set to face the next challenge – General purpose GPU users. To set the stage, lets take a look at some of the evolution of VDI (along with our VDI Administrator) and the technology that has fostered its growth.
So it looks like everything is good? We’ve witnessed the humble beginnings of putting desktops on a hypervisor and we’ve even got to the point that it’s almost cost feasible to do this! The past several years our VDI Administrator has struggled to get Windows XP tweaked and tuned to be lean, mean and efficient with their hardware. It has taken a couple of different storage solutions, compute configurations to get to the point that everything seems really, seriously, ready for production to most of the users in the organization. Well our VDI Administrator is about to find out that something is drastically different.
Just like hardware, hypervisors and brokers have made evolutionary leaps in terms of features and functionality, the Operating System has also been massively overhauled as have graphics.
Over the last several years, the graphics in our desktops and laptops have been growing. In the past we used to buy specialized graphics cards if we wanted to play any games. But Microsoft has latched on to the fact that very powerful GPU’s (Graphics Processing Unit) have been going into just about any and all PC’s and decided to take advantage of that. I’m not just talking about video gaming either, I am talking about very basic things like Excel, Word, PowerPoint, etc… All of these applications running under Windows 7 can take advantage of a GPU. Why would Microsoft do this? The End User’s demands for multimedia have evolved. In addition there is substantial power that Microsoft can tap into a GPU for. As Microsoft states, a GPU can accelerate consumer apps 5x – 20x vs. CPU alone!!! Imagine the impact this can have for VDI. Can I increase my user ratio by offloading to the GPU? Possibly. But if you do NOT have a GPU, you can burden the CPU even more.
Try it out yourself with this simple test. Open Task Manager and Word, let your system come to idle, then start scrolling up and down and watch your CPU utilization. Then go into Options/Advanced and check the box that says “Disable Hardware Graphics Acceleration” under Display. See the difference in simple scrolling in a word document?
Why is there such a difference?! That’s crazy! This happens because Microsoft Wndows 7 and the Office stack is now fundamentally built for a co-processing environment where the CPU handles what it is good at – serial tasks and the hundreds (or even thousands of GPU cores) handle the parallel processing tasks. That’s right, GPU’s aren’t just about graphics, they are true co-processors in the next generation of Windows desktop operating systems. We technically got our first taste of this in Vista, but as you probably know there were hiccups and IT was hesitant to roll that into production. Windows 7 is a different animal as its proven itself for the last couple of years, has the IT required “Service Pack 1” for real consideration, etc.. Windows 8 is also out, but it may be too big of a leap at the moment.
So what does this have to do with VDI now? Well, Windows XP is all but dead and if your still on it, you better be looking at moving from it. Lets look at the minimum system requirements for Windows XP and Windows 7.
Windows XP Professional:
- Pentium 233-megahertz (MHz) processor or faster (300 MHz is recommended)
- At least 64 megabytes (MB) of RAM (128 MB is recommended)
- At least 1.5 gigabytes (GB) of available space on the hard disk
- Video adapter and monitor with Super VGA (800 x 600) or higher resolution
- 1 gigahertz (GHz) or faster 32-bit (x86) or 64-bit (x64) processor
- 1 gigabyte (GB) RAM (32-bit) or 2 GB RAM (64-bit)
- 16 GB available hard disk space (32-bit) or 20 GB (64-bit)
- DirectX 9 graphics device with WDDM 1.0 or higher driver
So if I were our VDI admin, this would have me a little concerned. If we are moving from Windows XP to Windows 7, we need up 3x more CPU (actually more like 10x when you consider the clock for clock difference of an old 233MHz platform vs. the later Intel CPU’s) and 15x more memory.
But what if our VDI admin already has a basic Windows 7 VDI deployment? Chances are all of the GPU acceleration has been disabled along with the fancy smoothing that Windows 7 is capable of. This can indeed free up the CPU, but that is a double edged sword as it also dumbs down or disables certain features of Windows 7. At this point we are essentially stripping Windows 7 down and forcing it to fit the mold of a “VDI environment” that we’ve been designing and tuning for Windows XP. Is this wrong? Is this right? That is dependent upon a lot of different factors, but with Windows 7 being built for GPU acceleration, application vendors looking to create and market more powerful apps – If it hasn’t happened to you yet, there may indeed come a time in the very near future where you won’t be able to disable an applications GPU acceleration requirement, or maybe users need higher resolutions, multiple displays, etc.. In addition, users that have become accustomed to GPU enhanced Windows 7 often complain that stripped down VDI/Windows 7 doesn’t “look or feel like it’s the same thing”. This leads to end user frustration and can ultimately lead to NON ACCEPTANCE of the solution. What do you do then? You have this huge VDI environment and some app comes out that you literally can’t support or the end users are outside the datacenter with pitchforks and torches?
This is where we must evolve our VDI environment to the next phase – Enter VDI 2.0
Tell me more about these Nvidia GRID cards…
Currently Nvidia Offers two flavors of GRID cards – the GRID K1 and GRID K2. Your use case will determine which card (and which mode you need to use), but for users that need very high end graphics, the K2 is the best bet. For “General purpose GPU accelerated VDI”, the K1 is probably a better fit as there is more GPU memory to allocate to users.
We’ve played with GPU’s in servers for VDI before, what makes this so special? If you look closely, you’ll see that the GRID cards are able to be partitioned into smaller card segments. This is NOT the same thing as software/shim approaches to “virtualize” the GPU and share it amongst several desktops. This is also NOT the same as Pass-through GPU’s (1 VM to 1 GPU core). The GRID cards can be hardware partitioned into various video cards – this is called vGPU. There are several advantages to using vGPU over software/Shim solutions:
- vGPU uses a Native Nvidia driver and full DirectX11 OpenGL 4.4 support
- Software/Shim “virtualized video card” with limited support for DirectX and OpenGL (DX9 and OG2.1 with vSGA)
- Software/Shim solutions consume Host CPU in addition to GPU CPU
- Software/Shim solutions consume Host Memory in addition to GPU Memory
- Pass-through allows full performance and card features, but it is literally a 1 to 1 mapping of user to GPU = not very scalable
You might be thinking that this is easy – I’ll just grab these GRID cards and start using vGPU since its leaner, meaner and has full card capabilities than Software/Shim and it can scale better than Pass-Through. If it were only that simple – lets take a closer look all modes:
So why isn’t it this simple? If you take a close look above, you will see the various Hypervisors that support the different modes. Notice anything? The only solution that can do vGPU today is XenServer using XenDesktop. This may not be a problem if you are already a XenServer/XenDesktop shop, but what if you use vSphere and XenDesktop? If you use vSphere, you can’t do true vGPU. L The Hypervisor is what needs to be integrated into the Nvidia GRID software. Note that in the Software/Shim solution, you actually install the Video Cards driver in the Hypervisor for access. This is different than the GRID Software that gets installed for vGPU. Here is a summary of the support matrix as it currently sits:
The reality of the situation is this: We are at a tipping point for General Purpose VDI GPU acceleration.
The stars are aligning:
- Windows XP is almost dead! Windows 7 will be the standard and it benefits greatly from GPU
- Nvidia has created a Virtualization Specific series for GRID cards that are designed to be shared in VDI environments
- Hypervisors and Desktop Brokers are coming on board
NostraShawnus Prophesy of the future: As Windows 7 completely phases out Windows XP and applications that require GPU acceleration on top of Windows 7 become the “norm” (as if they aren’t already, all of Office is GPU accelerated!), the NEED for GPU will grow exponentially. End users will be the next hurdle in determining if VDI is a go/no go as their appetite for multimedia, comforts of multiple displays and every increasing monitor sizes set the standard for who is coolest in the office – GPU is the answer. Nvidia will continue to refine the GRID solutions in both Hardware and Software. You can already buy consumer based “Maxwell” Nvidia products today, they are lower in power and higher in performance – this will lead to increased efficiency in server platforms and the number of GPU’s you can install and use. Last, but definitely not least, other Hypervisors will jump on the vGPU bandwagon. This will be the final transformation as “General Purpose GPU” becomes the NORM for every virtual desktop.
Will we live to see this prophesy come true? I plan on being around for the next year or two, if you are as well, I think we’ll both see it come to fruition.
So what about our VDI Administrator? What does he or she do right now? I would recommend that if you are not already working with GRID cards, you should immediately call up your Cisco rep or Cisco Partner and ask for a UCS C240 M3 with some GRID cards. GPU is coming – there is no denying it.
It is better for you to at least be prepared and testing the GPU than be caught off guard when that app or critical user makes the demand. I work with many customers that are already at this point and they are deploying GRID based solutions in production. Yes, you can do this now, the requirements are coming in, many IT shops are deploying GRID as I type this.
VDI 2.0 is knocking – I suggest you meet them at the door and let them in ASAP. J
CONNECT WITH CISCO