XenApp and XenDesktop

适用于 Windows 服务器操作系统的 GPU 加速

通过 HDX 3D Pro,在 Windows Server 操作系统会话中运行的图形密集型应用程序可以在服务器的图形处理器 (GPU) 上呈现。通过将 OpenGL、DirectX、Direct3D 和 Windows Presentation Foundation (WPF) 呈现移到服务器的 GPU 上,服务器的 CPU 不会因图形呈现而变慢。此外,服务器还能够处理更多图形,因为工作负载在 CPU 和 GPU 之间进行了拆分。

由于 Windows Server 是多用户操作系统,因此由 XenApp 访问的 GPU 可以供多个用户共享,而无需 GPU 虚拟化 (vGPU)。

有关涉及到编辑注册表的过程,请注意:注册表编辑不当会导致严重问题,可能需要重新安装操作系统。Citrix 无法保证因注册表编辑器使用不当导致出现的问题能够得以解决。使用注册表编辑器需自担风险。在编辑注册表之前,请务必进行备份。

GPU Sharing

GPU Sharing 使 GPU 硬件可以在远程桌面会话中呈现 OpenGL 和 DirectX 应用程序;它具有以下特点:

  • 可用于裸机或虚拟机,以提高应用程序的可扩展性及性能。
  • 启用多个并发会话以共享 GPU 资源(大多数用户并不需要专用 GPU 的呈现性能)。
  • 无需任何特殊设置。

可以在虚拟机管理程序上安装多个 GPU,并将 VM 一对一地分配给每个 GPU:方法是安装一个配备有多个 GPU 的图形卡,或者安装多个分别配备一个或多个 GPU 的图形卡。建议不要在服务器上混合使用异类图形卡。

虚拟机需要以直接直通方式访问 GPU,这可通过使用 Citrix XenServer、VMware vSphere vDGA 和 Intel GVT-d 实现。当 HDX 3D Pro 与 GPU 直通结合使用时,服务器中的每个 GPU 支持一台多用户虚拟机。

GPU 共享不依赖任何特定的图形卡。

  • 在虚拟机管理程序上运行时,请选择与虚拟机管理程序的 GPU 直通实现兼容的硬件平台和图形卡。有关已通过 XenServer GPU 直通证书测试的硬件列表,请访问 GPU 直通设备
  • 在裸机上运行时,建议使用操作系统启用的一个显示适配器。如果在硬件上安装了多个 GPU,请仅保留一个 GPU,并使用 Device Manager 禁用其余的 GPU。

使用 GPU Sharing 的可扩展性取决于多个因素:

  • 正在运行的应用程序
  • 占用的视频 RAM 量
  • 图形卡的处理能力

一些应用程序处理视频 RAM 短缺的能力要优于其他应用程序。如果硬件严重过载,可能会导致图形卡驱动程序不稳定或崩溃。可限制并发用户的数量,以避免此类问题。

可以使用第三方工具(如 GPU-Z)来确定是否已实现 GPU 加速。有关 GPU-Z,请访问 https://www.techpowerup.com/gpuz/

DirectX、Direct3D 和 WPF 呈现

DirectX、Direct3D 和 WPF 呈现仅在具有支持显示驱动程序接口 (DDI) 9ex、10 或 11 版的 GPU 的服务器上可用。

  • 在 Windows Server 2008 R2 上,DirectX 和 Direct3D 不需要特殊设置即可使用单个 GPU。
  • 在 Windows Server 2016 和 Windows Server 2012 上,RD 会话主机服务器上的远程桌面服务 (RDS) 会话将 Microsoft 基本呈现驱动程序用作默认适配器。要在 Windows Server 2012 上的 RDS 会话中使用 GPU,请启用组策略本地计算机策略 > 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 远程会话环境中的对所有远程桌面服务会话使用硬件默认图形适配器设置。
  • 要能够使用服务器的 GPU 呈现 WPF 应用程序,请在运行 Windows Server 操作系统会话的服务器的注册表中创建以下设置:
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Multiple Monitor Hook] “EnableWPFHook”=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\CtxHook\AppInit_Dlls\ Multiple Monitor Hook] “EnableWPFHook”=dword:00000001

面向 CUDA 或 OpenCL 应用程序的 GPU 加速功能

默认禁用在用户会话中运行的 CUDA 或 OpenCL 应用程序的 GPU 加速功能。

要使用 CUDA 加速 POC 功能,请启用以下注册表设置:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] “CUDA”=dword:00000001
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] “CUDA”=dword:00000001

要使用 OpenCL 加速 POC 功能,请启用以下注册表设置:

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] “OpenCL”=dword:00000001
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] “OpenCL”=dword:00000001
适用于 Windows 服务器操作系统的 GPU 加速