Product Documentation

Windows Server 操作系统 GPU 加速

Jul 26, 2016

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

使用 HDX 3D Pro 时,多个用户可以共享图形卡。当 HDX 3D Pro 与 XenServer GPU 直通结合使用时,单台服务器可托管多个图形卡,每个虚拟机托管一个。

RDS 工作负载的 GPU Sharing

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

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

可以在虚拟机管理程序上安装多个 GPU,并将 VM 一对一地分配给每个 GPU:

  • 安装配备多个 GPU 的图形卡。
  • 或者,安装配备一个或多个 GPU 的多个图形卡。

    建议不要在服务器上混合使用异类图形卡。

注意:虚拟机需要直通访问 GPU,这可通过使用 Citrix XenServer 或 VMware vSphere 实现。 当 HDX 3D Pro 与 GPU 直通结合使用时,服务器中的每个 GPU 将支持一台多用户虚拟机。

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

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

可扩展性

使用 GPU 共享的可扩展性取决于以下因素:

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

例如,对于运行 ESRI ArcGIS 等应用程序的 NVIDIA Q6000 和 M2070Q 卡,已报告具有 8 至 10 位用户的可扩展性。 这些卡提供 6 GB 的视频 RAM。 较新的 NVIDIA GRID 卡提供 8 GB 的视频 RAM 和显著提高的处理能力(更多 CUDA 核心)。 使用 NVIDIA GRID K2 卡时,每个 GRID K2 卡支持 20 用户时可实现良好的性能。 其他应用程序可能会提高更多,在高端 GPU 上达到 32 个并发用户。

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

可以使用第三方工具(如 GPU-Z)来确定是否已实现 GPU 加速。 GPU-Z 可从 http://www.techpowerup.com/gpuz/ 获取。

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 加速(实验阶段)。默认情况下,会禁用此支持功能,但可以启用该功能以进行测试和评估。
警告:注册表编辑不当会导致严重问题,可能导致需要重新安装操作系统。Citrix 无法保证因“注册表编辑器”使用不当导致出现的问题能够得以解决。使用“注册表编辑器”需自担风险。在编辑注册表之前,请务必进行备份。
  1. 要使用 CUDA 加速功能(实验阶段),请启用以下注册表设置:
    • [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
  2. 要使用 OpenCL 加速功能(实验阶段),请启用以下注册表设置:
    • [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