One of the most-anticipated demos we hope to see at VMworld this week is of VMware’s software-only implementation of Teradici’s PC-over-IP remote display protocol. If VMware can actually come out with a decent implementation of PC-over-IP (and that’s a big “if”), this would certainly be a big threat to Citrix whose ICA protocol has traditionally dominated the space. So perhaps it should come as no surprise that Citrix announced something called “HDX 3D” today, an enhancement to ICA they claim delivers 3D applications while just consuming one-tenth the bandwidth of the “competition.” (read: PC-over-IP)
What is HDX 3D?
Remember that Citrix created the HDX brand earlier this year as the catch-all phrase to describe the various user experience enhancements to ICA. There were many different sub-brands in the HDX family, including HDX 3D. The “HDX 3D” from earlier this year wasn’t really about 3D at all, but instead it was the sort of catch-all where Citrix lumped their progressive display, lossy compression, and SpeedScreen technologies. We assumed that HDX 3D would also be the area where Citrix would include their “Apollo” technology when it was released, and that’s in fact what we’re seeing today. (Actually this technology has been known by many codenames over the years, including K2, Ocelot, Pictor, and Apollo.) If you ever played around with any of those tech previews, though, you’ll notice that today’s final (first?) HDX 3D release is substantially different in a lot of ways.
The new release of HDX 3D will be used to deliver OpenGL and DirectX apps running on XenDesktop back-ends to users via ICA. HDX 3D is a host-side rendering / encoding technology, which means that it identifies and encodes OpenGL and DirectX graphic content on the remote host and sends it down to the client via normal ICA. (Again, just to be clear, this is not redirection where they send raw OpenGL/DirectX calls to the client. This is full host-side encoding.)
HDX 3D has a host-side hardware requirement in that the remote host must have a CUDA-enabled Nvidia GPU which is used to do the fast and complex math to make this all happen. (More on CUDA in a bit.) In practical terms that means as it stands today, HDX 3D is a one-to-one solution for remote blade workstations. It doesn’t work via XenApp (since each session doesn’t have its own GPU), and it doesn’t work when your backend desktops are running as VDI VMs (because the hypervisor doesn’t expose the GPU to the VMs).
HDX 3D will be available by the end of September as a feature of XenDesktop (Advanced Editions and higher), meaning it won’t cost anything extra.
How HDX 3D works
On the remote host side, Citrix is releasing a custom VDA for the environments where you want to use HDX 3D. (The VDA, or “Virtual Desktop Agent,” is the software agent you install on your remote workstation OS that lets it participate in a XenDesktop farm and gives the ICA hosting capability to a desktop OS.) Having a separate VDA shouldn’t be a problem for anyone since this is a physical workstation host solution anyway, so it’s not like you’re sharing the same disk image with remote desktop VMs.
On the client side, HDX 3D is just another plug-in for the Citrix Receiver. (That’s newspeak for “it’s just another virtual channel for the regular ICA client.”)
HDX 3D lets you configure the image quality, so you can balance the bandwidth-to-user experience. (PC-over-IP lets you do this too.)
From a technical standpoint, the HDX 3D engine replaces the existing ICA progressive display capability. It lets the OpenGL or DirectX stuff render on the host, and then it scrapes them and makes what’s essentially like an M-JPEG movie which is streamed down and played on the client. In many ways this is similar to the way HP RGS and Teradici PC-over-IP.
What’s this “CUDA” thing?
HDX 3D requires a physical GPU on the host that supports “CUDA.” CUDA is an Nvidia programming interface that lets app developers run code on the GPU. (CUDA stands for “Compute Unified Device Architecture,” whatever that means.) The key about CUDA is that it’s NOT about graphics programming per se. It’s about giving programmers access to the power of the GPU to do whatever they want. A lot of CUDA-enabled apps today do super-math intensive things that GPUs excel at, like cryptography and molecular modeling. So in Citrix’s case, they’re leveraging the GPU as sort of a poor-man’s Teradici chip. Sure, it’s not made for remote graphics like the Teradici chip, but it’s much better suited for it than the normal CPU.
Just about every Nvidia GPU on the market today is CUDA-enabled, including the GeForce, Quattro, and Tesla devices. So if you have one of these GPUs in your remote host, you can swap out your off-the-shelf VDA for the CUDA-enabled HDX 3D VDA and leverage the advanced encoding options when delivering OpenGL and DirectX content.
What's tough for Citrix is that they're trying use this announcement to defend themselves on two fronts here:
- On one front they've got the traditional Teradici hardware-based PC-over-IP threat. Here they're basically saying, “Why buy a proprietary chip when every Nvidia card from the last few years can do many of the same things?”
- On the other, Citrix is trying to preempt any excitement that VMware might generate this week with their software PC-over-IP implementation. They want to be ready to say, "We can do all this too, but with less bandwidth." (Again, this depends on how good the software PC-over-IP is, which we just don't know right now.)
Of course at the end of the day, it's all about use cases. The reality is that HDX 3D is going to be for those customers who are already using Citrix XenDesktop or XenApp who were maybe considering the hardware PC-over-IP. Right now PC-over-IP doesn’t integrate with Citrix, so if a current customer wants that, they’d have to build a new infrastructure for it which would be bad for Citrix since it would open the door (in the customer’s mind) for alternatives. So if HDX 3D can prevent customers from trying something else, then it’s done its job.
Some folks are quick to point out the fact that by limiting HDX 3D to XenDesktop only (and not XenApp), Citrix is really missing the boat. Personally I don’t agree with that, because I don’t think that these higher-end apps that need HDX 3D are the kind of apps that people typically use on a Terminal Server. And right now any technology that lets a Terminal Server share multiple GPUs is so expensive that you’d be better off just building a blade environment for them. (Especially now that Citrix is planning for XenDesktop-hosted apps.)
I haven’t had a chance to use HDX 3D yet. We’ll look for a demo at VMworld this week to record for Brian Madden TV. And if we can’t find it, we’ll do something next week via the WAN. (Because the 10x bandwidth savings and WAN compatibility are both two things Citrix is pushing about HDX 3D, so that demo should work no prob!)