Product Documentation

GPU acceleration for Windows Desktop OS

Feb 05, 2016

With HDX 3D Pro you can deliver graphically intensive applications as part of hosted desktops or applications on Desktop OS machines, according to the requirements of your users. HDX 3D Pro supports physical host computers (including desktop, blade, and rack workstations) and XenServer VMs with GPU Passthrough and XenServer VMs with Virtual GPU (vGPU).

The XenServer GPU Passthrough feature enables you to create VMs with exclusive access to dedicated graphics processing hardware. You can install multiple GPUs on the hypervisor and assign VMs to each of these GPUs on a one-to-one basis.

The XenServer vGPU feature enables multiple virtual machines to directly access the graphics processing power of a single GPU.

What's new in this release

  • vGPU — The Virtual Graphical Processing Unit (vGPU) feature enables multiple virtual machines to directly access the graphics processing power of a single physical GPU. You can use hardware-accelerated vGPU access for Windows desktop VDI workloads. The true hardware GPU sharing provides full Windows 7 or Windows 2008 R2 SP1 desktops suitable for users with complex and demanding design requirements. Supported for NVIDIA GRID K1 and K2 cards, the GPU sharing uses the same NVIDIA graphics drivers that are deployed on non-virtualized operating systems.
  • Flash Redirection support on more operating systems — Flash Redirection is now supported for Windows Server 2012 R2, Windows Server 2012, Windows 8.1, and Windows 8 VDAs. Flash Redirection is enabled by default for those operating systems.
  • Application window positions retained in local sessions — When a user roams from a local to a remote session, and then roams back to the local session, the application windows are returned to their previous positions on the local session. Window positions are stored by client name.

Key features

  • Adaptive H.264-based deep compression for optimal WAN and wireless performance - HDX 3D Pro uses CPU-based deep compression as the default compression technique for encoding. This provides optimal compression that dynamically adapts to network conditions.

    The H.264-based deep compression codec no longer competes with graphics rendering for CUDA cores on the NVIDIA GPU. The deep compression codec runs on the CPU and provides superior bandwidth efficiency over prior HDX 3D Pro releases.

  • Lossless compression option for specialized use cases - HDX 3D Pro also offers a CPU-based lossless codec to support applications where pixel-perfect graphics are necessary, such as medical imaging. H.264-based deep compression codec provides significantly better bandwidth efficiency than was available in the previous XenDesktop release. Lossless compression is recommended only for specialized use cases because it consumes significantly more network and processing resources.

    When using lossless compression:

    • The lossless indicator, a system tray icon, notifies the user if the screen displayed is a lossy frame or a lossless frame. This helps when the VisualQuality is set to BuildToLossless. The lossless indicator turns green when the frames sent are lossless.
    • The lossless switch enables the user to change to Always Lossless mode anytime within the session. To select or deselect Lossless anytime within a session, right-click the icon or use the shortcut ALT+SHIFT+1.

      For lossless compression: HDX 3D Pro uses the lossless codec for compression regardless of the codec selected through policy.

      For lossy compression: HDX 3D Pro uses the original codec, either the default or the one selected through policy.

      Note: Lossless switch settings are not retained for subsequent sessions. To use lossless codec for every connection, set the Visual quality policy to Always lossless.
  • Multiple monitor support - For Windows 7 and Windows 8 desktops, HDX 3D Pro supports user devices with up to four monitors. Users have the freedom to arrange their monitors in any configuration and can mix monitors with different resolutions and orientations. The number of monitors is limited by the capabilities of the host computer GPU, the user device, and the available bandwidth.

    HDX 3D Pro also provides limited support for dual-monitor access to Windows XP desktops. The XenDesktop 5.6 VDA, included with XenDesktop 7, XenDesktop 7.1,XenDesktop 7.5, and XenApp 7.5 is required to deliver Windows XP virtual desktops and applications.

  • High resolution monitor support - HDX 3D Pro supports all monitor resolutions and is only limited by the capabilities of the GPU on the host computer.
  • Dynamic resolution - You can resize the virtual desktop or application window to any resolution in this release. Note: The only supported method to change the resolution is by resizing the VDA session window. Changing resolution from within the VDA session (using Control Panel > Appearance and Personalization > Display > Screen Resolution) is not supported.
  • Support for NVIDIA Kepler architecture - HDX 3D Pro supports NVIDIA GRID K1 and K2 cards for GPU passthrough and GPU sharing. NVIDIA GRID vGPU enables multiple VMs to have simultaneous, direct access to a single physical GPU, using the same NVIDIA graphics drivers that are deployed on non-virtualized operating systems.
  • Support for VMware vSphere and VMware ESX using Virtual Direct Graphics Acceleration (vDGA) - You can use HDX 3D Pro with vDGA for both RDS and VDI workloads.

    When HDX 3D Pro is used with Virtual Shared Graphics Acceleration (vSGA), support is limited to one monitor. Using vSGA with large 3D models can result in performance issues due to its use of API intercept technology. For more information about issues, refer to VMware vSphere 5.1 - Citrix Known Issues.

HDX 3D Pro integration

HDX 3D Pro integrates with your existing XenApp and XenDesktop infrastructure. You can deliver graphical applications as part of hosted applications or desktops on Desktop OS machines.

As shown in the following figure:

  • The host computer must reside within the same Active Directory domain as your Delivery Controller.
  • When a user logs on to Citrix Receiver and accesses the virtual application or desktop, the controller authenticates the user and contacts the VDA for HDX 3D Pro to broker a connection to the computer hosting the graphical application.

    The VDA for HDX 3D Pro uses the appropriate hardware on the host to compress views of the complete desktop or just of the graphical application.

  • The desktop or application views and the user interactions with them are transmitted between the host computer and the user device through a direct HDX connection between Citrix Receiver and the VDA for HDX 3D Pro.

Diagram showing integration of HDX 3D Pro with XenDesktop and related components

Install and configure HDX 3D Pro for Windows Desktop OS

Pre-requisites

  • An installed and configured XenApp or XenDesktop infrastructure
  • A XenApp or XenDesktop site
  • If using XenApp or XenDesktop with XenServer vGPU, refer to vGPU Release Notes and Configuring XenServer to use NVIDIA GRID on Citrix Virtual GPU Solution.

To install using the graphical interface

To enable users to connect to the physical machine or XenServer VM hosting the graphical application, you install the Virtual Delivery Agent (VDA) for HDX 3D Pro. Then, to assign the virtual desktop or application to a user, you create a machine catalog and a delivery group containing the computer that hosts the graphical application.
  1. Prepare the VM or physical machine that will host the graphical application: Install and set up the graphical application, plus any other applications that are required.
    For more information about assigning a GPU to a Windows VM, see the XenServer Virtual Machine User's Guide.
    Note: By default, each virtual CPU that you allocate to a XenServer VM is assigned to a single-core socket. This means that on operating systems with socket restrictions, you can only use a limited number of the CPU cores on the host server. XenServer Advanced, Enterprise, and Platinum editions include a feature that enables you to specify the number of cores per virtual CPU in a VM. For more information, see http://support.citrix.com/article/CTX126524.
  2. For user connections to physical VDAs with physical monitors attached, verify that the user device resolution is equal to or less than the VDA resolution.

    If the resolution requested by the user device is high, the ICA session will not detect the resolution of the user device and will fall back to the minimum resolution supported by the VDA monitor.

  3. Join the host computer to the Active Directory domain containing your Delivery Controller. Make a note of the Active Directory computer account name for the host computer as you will need to know this when you create a machine catalog.
  4. Insert the installation media into the optical drive or mount the ISO on the host computer. If autorun is not enabled, navigate to and run AutoSelect.exe on the installation media.
  5. In the installation wizard, select Virtual Delivery Agent for Windows Desktop OS or Virtual Delivery Agent for Windows Server OS.
  6. On the Environment page, choose to Create a Master Image (if you use Machine Creation Services or Provisioning Services to create virtual desktops) or Enable Remote PC Access (if you want users to connect to an existing machine).
  7. On the Core Components page, click Next.
  8. On the Delivery Controller page, specify the controllers in the site to which the VDA for HDX 3D Pro will connect, either by manually entering the locations, by selecting controllers from Active Directory, or by allowing Machine Creation Services to specify the Controllers. Alternatively, select Do it later if you plan to specify controller locations later using Group Policy or by running the installer again.
    Important: Ensure that you specify the locations of all the controllers in the site, otherwise some user connections may be refused. For load balancing, the VDA for HDX 3D Pro automatically distributes connections evenly across the controllers.
  9. If you are using a firewall other than Windows Firewall on the host computer, manually enable ports 80, 1494, 2598, and 3389 to allow XenApp or XenDesktop to function correctly and open ports 16500–16509 to enable Real-time Transport for Audio. If Windows Firewall is running on the host computer, the installer gives you the option to open the ports automatically. Click Next.
  10. On the Summary page, click Install.
    Before the VDA for HDX 3D Pro is installed, the following prerequisites are installed if they are not already present on the host computer.
    • Microsoft .NET Framework 3.5 SP 1
    • Microsoft Visual C++ 2005, 2008 SP 1, and 2010 Redistributable packages
  11. When the installation is complete, ensure that the Restart machine (required to complete install) check box is selected and click Close.
  12. After completing the installation of the VDA for HDX 3D Pro, log on to the computer running Studio, create a machine catalog, and add the computer hosting the graphical application. For help with this step, see Create a new machine catalog.
    When creating a machine catalog for vGPU-enabled desktops, be sure to use the following settings:
    • On the Operating System and Hardware page, select Windows Desktop OS.
    • On the Machine Management page, select Virtual machines.
    • On the Desktop Experience page, select I want users to connect to the same (static) desktop each time they log on.
  13. To make the hosted desktops on Desktop OS machines available to users, create a desktop delivery group using the machine catalog containing the host computer. For help with this step, see Create a new Delivery Group.

To install using the command line

You can also install the VDA for HDX 3D Pro from a command prompt. To install HDX 3D Pro, run XenDesktopVdaSetup.exe and include the following option in addition to any others you need to use.
  • /ENABLE_HDX_3D_PRO

For information about other options, run XenDesktopVdaSetup.exe /h or see Install using the command line.

To deploy the VDA for HDX 3D Pro through Active Directory Group Policy, ensure that the transform file specifies appropriate values for the ENABLE_HDX_3D_PRO properties. For more information about deploying the VDA through group policy, see Install or remove Virtual Delivery Agents using scripts in Active Directory.

To upgrade HDX 3D Pro

To upgrade HDX 3D Pro, uninstall both the separate HDX 3D for Professional Graphics component and the VDA before installing the latest VDA for HDX 3D Pro. Similarly, to switch from the standard VDA to the one for HDX 3D Pro, uninstall the standard VDA and then install the VDA for HDX 3D Pro.

Install and upgrade NVIDIA drivers

The NVIDIA GRID API provides direct access to the frame buffer of the GPU, providing the fastest possible frame rate for a smooth and interactive user experience. If you install NVIDIA drivers before you install a VDA with HDX 3D Pro, NVIDIA GRID is enabled by default.

To enable NVIDIA GRID on a VM, disable Microsoft Basic Display Adapter from the Device Manager. Run the following command and then restart the VDA:

Montereyenable.exe –enable –noreset

If you install NVIDIA drivers after you install a VDA with HDX 3D Pro, NVIDIA GRID is disabled. Enable NVIDIA GRID by using the Montereyenable tool provided by NVIDIA.

To enable NVIDIA GRID, run the following command, then restart the VDA:

Montereyenable.exe –enable –noreset

To disable NVIDIA GRID, run the following command, then restart the VDA:

Montereyenable.exe –disable –noreset

Optimize the HDX 3D Pro user experience

Implement the following recommendations to provide the optimum experience for your users:
  • To use HDX 3D Pro with multiple monitors, ensure that the host computer is configured with at least as many monitors as are attached to user devices. The monitors attached to the host computer can be either physical or virtual.
  • Do not attach a monitor (either physical or virtual) to a host computer while a user is connected to the virtual desktop or application providing the graphical application. Doing so can cause instability for the duration of a user's session.
  • Let your users know that changes to the desktop resolution (by them or an application) are not supported while a graphical application session is running. After closing the application session, a user can change the resolution of the Desktop Viewer window in the Citrix Receiver – Desktop Viewer Preferences.
  • When multiple users share a connection with limited bandwidth, such as at a branch office, Citrix recommends that you use the Overall session bandwidth limit policy to limit the bandwidth available to each user. This ensures that the available bandwidth does not fluctuate widely as users log on and off. Because HDX 3D Pro automatically adjusts to make use of all the available bandwidth, large variations in the available bandwidth over the course of user sessions can negatively impact performance. For more information, see the Bandwidth policy settings.

    For example, if 20 users share a 60 Mbps connection, the bandwidth available to each user can vary between 3 Mbps and 60 Mbps depending on the number of concurrent users. To optimize the user experience in this scenario, determine the bandwidth required per user at peak periods and limit users to this amount at all times.

  • For users of a 3D mouse, Citrix recommends that you increase the priority of the Generic USB Redirection virtual channel to 0. For information about changing the virtual channel priority, see http://support.citrix.com/article/CTX128190.