Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

Citrix HDX 3D for Professional Graphics – a quick'n'dirty review

A few days ago Citrix released a long awaited product, it is called HDX 3D for Professional Graphics. HDX 3D is a technology to delivery professional graphic applications (CAD/CAM) like AutoCAD through or with the ICA protocol in LAN (100 Mbps) and even in WAN (2 Mbps, with up to 200ms latency) scenarios.

This technology has a very long history with dozens of code names like boing, pictor, visual design studio, apollo, prism and finally the 1.0 release is called HDX 3D for Professional Graphics (ProGfx). HDX 3D is an add-on to XenDesktop 3.0 and it works with OpenGL and DirectX-based graphic applications which need graphics hardware (GPU) acceleration.

Even if this is a XenDesktop add-on version 1.0 of HDX 3D ProGfx doesn’t work with virtual machines. It only works with physical hardware like blade pcs or rack workstations . As ProGfx can leverage NVIDIA’s CUDA technology it is recommended that your hardware contains a graphic card with a NVIDIA GPU.

There are three scenarios in which HDX 3D for ProGfx can be used:

  1. You’re hardware has a NVIDIA CUDA enabled GPU with at least 96 stream processors and the NVIDIA CUDA 2.1 driver installed
  2. You’re hardware has a NVIDIA CUDA enabled GPU with less than 96 stream processors
  3. You’re hardware does not contain a CUDA-enabled NVIDIA GPU at all

In scenario 1 GPU- and CPU-based rendering is supported, while GPU-based rendering is preferred, but in scenario 2 and 3 only CPU-based rendering is supported.

You ask why you need such a tremendous 96 stream processor powered NVIDIA CUDA graphic card? That’s easy, (1) your CAD/CAM application needs one of this beasts and (2) HDX 3D leverages the power of the GPU compress/render your ICA session to get as much bandwidth savings as possible while delivering the full 3D experience over LAN/WAN connections.

As what I have heard Citrix basically renders the ICA session as  some kind of  video stream (my bet is H.264) and is delivering this stream through an ICA virtual channel to the client system. That means the video is encoded (with the support of CUDA if you have the right GPU) on your HDX 3D ProGfx server and is decoded on your client.

And how do you get HDX 3D fro Professional Graphics up and running? There are three steps to go.

1. Desktop Delivery Controller (DDC)
Your DDC needs to be a version 3.0, and no 2.0/2.1, controller. ProGfx is only supported with XenDesktop 3.0 with or without Feature Pack 1.

2. Virtual Desktop Agent (in Citrix terms your HDX 3D for ProGfx server)
This component is the hardware where the graphic application is running on top. You need to have three things on this system:

  • If your system is powered by a NVIDIA GPU with at least 96 cores you need the right CUDA drivers for your GPU (CUDA 2.1 is recommended by Citrix)
  • Microsoft .NET Framework 3.5 must be installed
  • a XenDesktop 3.0 agent (Virtual Desktop Agent) must be installed. I recommend the latest version XDE310VDA004

After your system meets all the prerequisites  the HDX 3D for ProGfx server must be installed.

3.  Desktop Receiver
As this is the client which connects to your ProGfx server, this is a very special build. Before installing it you have to uninstall any other Citrix ICA client.

The installation of any of these new components is pretty straight forward.

Unfortunately HDX 3D for ProGfx has some restrictions in version 1.0:

  • You can only use an Windows XP SP3 32-bit as host system (ProGfx server)
  • You have to use an english version of your operting system
  • There is no multi monitor support, it’s just one monitor with a resolution up to 1920×1200 supported

And now you get to know why this is a quick and dirty review of HDX 3D for ProGfx.

As I haven’t had any spare high-end NVIDIA graphic card (with a price range from about 700 to 2000 EUR) lying around and our lab at work only contains servers and thin clients I had to use the best I can get. And at this point in time it was a old Dell Latitude D620 as “high end CAD/CAM workstation” and a Dell Latitude D810 as client. That was the only hardware which was lying around and was not used for any other reason. So I installed Windows XP on both notebooks, in fact I only had to install it on the D620 as the D810 already was equipped with Windows XP. Then I installed the special Desktop Receiver on the D810 and, after installing .NET 3.5 and the VDA, I installed the HDX 3D ProGfx server on the D620. As test application I used Google’s Earth and Sketch Up. Both applications take advantage of graphic hardware acceleration.

As I expected the performance wasn’t the best. Well, no surprise there as the D620 have a NVIDIA Quadra NVS 110M with only 8 stream processors. But a least you get a feeling for how HDX3D for ProGfx works.

I recorded a little video which should give a quick demo how the user is experiencing HDX 3D GfxPro, in real life this is will be a much smoother and faster experience. In this video I didn’t use the D810 as client, instead I used a NVIDIA ION powered system with an Intel Atom processor. Why I did this I’m going to explain after the video.

So why was I using the NVIDIA ION-based system? I wanted to test two things: (1) if the wfica32.exe, which is decoding the video on the client, is using more than one CPU and (2) if Citrix also is using CUDA on the client side for offloading the video deconding to the GPU. By the way NVIDIA ION chipsets is powered by 16 cores.

And the results are: (1) the wfica32.exe isn’t multi-threaded so only one CPU (core) can be used for decoding the video stream and (2) no, CUDA isn’t used on the client side

What’s really cool, and you can also see this in the video, is the HDX 3D ConfigTool. This is the slider where you can adjust the image quality between smoother roaming (= less quality = lower CPU/GPU utilization = low bandwidth consumption)  and sharper image (best quality = high CPU/GPU utilization = high bandwidth consumption).

My feature requests for the next version of HDX3D for ProGfx are:

  1. CUDA support for the client side. Imagine how cool it would be if you can use a cheap NVIDIA ION-based system (around 300 EUR) as thin client for your HDX 3D workers.
  2. the wfica32.exe should be multi-threaded
  3. Multi-monitor support

Closing words: I think HDX 3D for Professional Graphics shows what Citrix is capable of to do with their ICA/HDX protocol and how they have a solution for any kind requirement. Nice start for a 1.0 version!

  • Hi, there are news for HDX 3D in XenApp Environment? Citrix blog says http://community.citrix.com/display/ocb/2009/10/26/Unbeatable+solutions+for+high-end+3D+graphics

    Is possible to share a £D CUda Nvidia card between ICA Terminal Session over Windows Server 2008?

    Gabriele

    28. October 2009

  • Hi Gabriele,

    XenApp for Windows Server 2008 uses all kinds of 3D graphic cards (GPU) – I think it doesn’t have to be a CUDA enabled card? – for rendering DirectX/Direct3D-based content. For example if you running Google Earth (which uses OpenGL) not the CPU is rendering the earth globe but the GPU. Also the GPU can be used by more than one user.

    In addition to that XenApp for Windows Server 2008 also uses the GPU for doing some ICA compression tasks. Unfortunately this works only in ICA sessions with a color depth of 16-bit.

    Tim Arenz

    29. October 2009

Leave a comment  

name*

email*

website

Submit comment