Citrix Virtual Apps and Desktops

适用于 Windows 多会话操作系统的 GPU 加速

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

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

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

GPU Sharing

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

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

按照虚拟机管理程序和 GPU 供应商的要求,可以在完全直通或虚拟 GPU (vGPU) 模式下将 GPU 分配给 Windows Server 虚拟机。还支持在物理 Windows Server 计算机上进行裸机部署。

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

  • 对于虚拟机,请选择与正在使用的虚拟机管理程序兼容的图形卡。有关 Citrix Hypervisor 硬件兼容性列表,请参阅 Hypervisor 硬件兼容性列表
  • 在裸机上运行时,建议使用操作系统启用的一个显示适配器。如果在硬件上安装了多个 GPU,请仅保留一个 GPU,并使用 Device Manager 禁用其余的 GPU。

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

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

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

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

  • 访问 NVIDIA GPU 和 Intel Iris Pro 图形处理器的高性能视频编码器。策略设置(默认启用)控制此功能,并允许使用硬件编码进行 H.264 编码(如果可用)。如果此类硬件不可用,VDA 会回退到使用软件视频编解码器的基于 CPU 的编码。有关详细信息,请参阅图形策略设置

DirectX、Direct3D 和 WPF 呈现

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

  • 在 Windows Server 2008 R2 上,DirectX 和 Direct3D 不需要特殊设置即可使用单个 GPU。
  • 在 Windows Server 2012 及更高版本上,RD 会话主机服务器上的远程桌面服务 (RDS) 会话将 Microsoft 基本呈现驱动程序用作默认适配器。要在 Windows Server 2012 及更高版本上的 RDS 会话中使用 GPU,请启用组策略本地计算机策略 >计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 远程会话环境中的对所有远程桌面服务会话使用硬件默认图形适配器设置。
  • 要能够使用服务器的 GPU 呈现 WPF 应用程序,请在运行 Windows 多会话操作系统会话的服务器的注册表中创建以下设置:
    • [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 加速