Earlier this week I wrote about about Microsoft’s last minute change to RDP in Windows 7, where all DirectX components will now be rendered on the host. I based my post on an MSDN blog post by Microsoft employees Christa Anderson, Gaurav Daga, and Nelly Porter.
In the comments of the original MSDN post, reader David Rottenberg wrote that this change was a bad idea, partially because host-side software-based DirectX rendering would be slow. Microsoft’s Guarav Daga’s response included:
As for running DirectX applications on Windows Server 2008 R2 Hyper-V virtual machines, there will be the GPU offload hardware assist Calista technologies at some point in the future.
What's this?!? GPU offload hardware? I knew that the concept existed (both with things like NVIDIA's Tesla hardware as well as ASIC-based solutions like Teradici's PC-over-IP. However, I didn't know that Microsoft was planning this for RDP. I did a quick Google search for [calista hardware] and found this PowerPoint presentation by Nelly Porter from WinHEC 08, the same conference that prompted my November 2008 update about Calista.
Even though I only have the slides without notes or video, there are a few interesting points we can find here. First, Slide 10 shows three different modes of host side rendering in RDP 7+:
- GPU-based codec
- ASIC-based codec
- CPU-based codec
My assumption is that the GPU-based codec uses the host-side GPU to render screen elements. I would think that in this case we'd be limited to a one-to-one GPU-to-client relationship, although I don't know that and it certainly may be possible to "slice" the GPU so that multiple sessions or VMs can share it. Alternately, we may be able to use an external device full of GPUs (like the Tesla stuff).
That said, Daga's quote mentioned " there will be the GPU offload hardware assist Calista technologies at some point in the future," meaning they're not here now. (i.e. this is something new that does not exist yet.) So what's this mean? Will Microsoft sell GPU hardware cards? Or, more likely, will companies like HP and Dell sell rackable boxes of GPUs (kind of like how you can buy DAS from them today?)
For the ASIC-based codec, my assumption is that will also be a future product that will be a lot like Teradici's PC-over-IP Terachip. I assume that Microsoft will design a special chip (the "ASIC") that will be purpose built for rendering host-side graphics and sending them to clients via RDP.
And finally, the CPU-based codec is kind of like what we already have today, where the normal host-side CPU resources will be used to render all the screen elements.
Continuing through the WInHEC slides, we also find that Slide 22 is interesting: (click it to enlarge)
This is talking about the future of Calista. (The fine print at the bottom says that the "release vehicle" was not known at that time, in that they didn't know if that would be Windows 7 or some point in the future.)
This slide shows a few different rich media apps--Flash, Silverlight, Real, and Windows Media--that all sit on top of a "Calista Graphics Intercept & VGPU." (I assume that means "Virtual GPU?") That whole stack sits on top of the Calista Device Driver, which in turn rides on top of either the GPU, ASIC, or CPU. My assumption here is that this means you get the same functionality regardless of which rendering engine you're using (although obviously performance and scalability will be affected.)
What's most interesting to me about this is the "VGPU" and how that whole diagram is inside the green box called "Windows Client in Hyper-V Guest." Does that mean that Calista requires the VGPU, and therefore requires Hyper-V? (Because I don't think any other hypervisor exposes a VGPU to the guests?) If so, wow, wow, and WOW!
It's also interesting to see (in the list to the right of this slide) that an "Optional HW ASIC-based decoder enables ultra-lightweight client scenarios." Umm.. PC-over-IP anyone? So the host-side can be all software (CPU), or can use host GPU(s) or a custom plug-in card, all of which require Hyper-V. And the client can be software (probably for rich clients) or can have a chip for an ultra thin client.
Wow! Does VMware stand a chance? Does Citrix? Does Teradici?
I’m not sure when this information was made public. (I mean obviously the stuff at WinHEC was all public. I just don’t know when this info made it out to the web.) But I haven't read anything about this, so let’s discuss!