Product Documentation

GPU-Beschleunigung für Windows-Serverbetriebssystem

Feb 29, 2016

Mit HDX 3D Pro können grafikintensive Anwendungen, die in Windows-Serverbetriebssystemsitzungen ausgeführt werden, auf der GPU des Servers wiedergegeben werden. Beim Verlagern der Wiedergabe von OpenGL, DirectX, Direct3D und Windows Presentation Foundation auf den GPU des Servers wird die CPU des Servers nicht durch die Grafikwiedergabe verlangsamt. Zusätzlich kann der Server so mehr Grafiken verarbeiten, weil die Arbeitslast zwischen Prozessor und Grafikprozessor aufgeteilt wird.

Bei Verwendung von HDX 3D Pro können mehrere Benutzer eine Grafikkarte gemeinsam verwenden. Wenn HDX 3D Pro mit XenServer GPU-Passthrough verwendet wird, hostet ein Server mehrere Grafikkarten, d. h. eine pro virtuelle Maschine.

Vorsicht beim Bearbeiten der Registrierung: Eine unsachgemäße Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen und eine Neuinstallation des Betriebssystems erforderlich machen. Citrix übernimmt keine Garantie dafür, dass Probleme, die auf eine unsachgemäße Verwendung des Registrierungs-Editors zurückzuführen sind, behoben werden können. Die Verwendung des Registrierungs-Editors geschieht daher auf eigene Gefahr. Sichern Sie die Registrierung auf jeden Fall vor dem Bearbeiten ab.

GPU Sharing

GPU Sharing ermöglicht die GPU-Hardwarewiedergabe von OpenGL- und DirectX-Anwendungen in Remotedesktopsitzungen und hat die folgenden Merkmale:
  • Verwenden auf Bare-Metal- oder virtuellen Maschinen, um die Anwendungsskalierbarkeit und -leistung zu steigern.
  • Mehrere gleichzeitige Sitzungen können GPU-Ressourcen gemeinsam verwenden. (Die meisten Benutzer benötigen nicht die Wiedergabeleistung eines dedizierten GPU).
  • Erfordert keine besonderen Einstellungen.

Für DirectX-Anwendungen wird standardmäßig nur ein GPU verwendet. Dieser GPU wird von mehreren Benutzern gemeinsam genutzt. Die Zuordnung von Sitzungen auf mehreren GPUs mit DirectX- ist noch im Versuchsstadium und erfordert Registrierungsänderungen. Weitere Informationen erhalten Sie vom Citrix Support.

Sie können mehrere GPUs auf einem Hypervisor installieren und jedem GPU eine VM zuordnen: entweder durch Installation einer Grafikkarte mit mehreren GPUs oder durch Installation mehrerer Grafikkarten mit einem oder mehreren GPUs. Eine Mischung heterogener Grafikkarten auf einem Server wird nicht empfohlen.

Virtuelle Maschinen benötigen einen direkten Passthrough-Zugriff auf einen GPU; dies ist mit Citrix XenServer oder VMware vSphere verfügbar. Wenn HDX 3D mit GPU-Passthrough verwendet wird, unterstützt jeder GPU des Servers eine virtuelle Maschine mit mehreren Benutzern.

GPU Sharing hängt nicht von einer bestimmten Grafikkarte ab.
  • Wählen Sie bei Ausführung auf einem Hypervisor eine Hardwareplattform und Grafikkarten aus, die mit der Implementierung von GPU-Passthrough des Hypervisors kompatibel sind. Die Liste der Hardware, die Zertifizierungstests mit XenServer GPU-Passthrough bestanden hat, finden Sie unter GPU-Passthroughgeräte.
  • Bei Ausführung auf Bare-Metal verteilt das System die Benutzersitzungen auf alle geeigneten Grafikprozessoren. Um sicherzustellen, dass alle installierten Grafikprozessoren geeignet sind, verwenden Sie identische Grafikprozessoren.
Die Skalierbarkeit mit GPU Sharing hängt von folgenden Faktoren ab:
  • Ausgeführte Anwendungen
  • Verbrauchter Videospeicher
  • Verarbeitungsleistung der Grafikkarte

Beispiel: Skalierbarkeitswerte im Bereich von 8 bis 10 Benutzern wurden für NVIDIA Q6000- und M2070Q-Karten berichtet, die Anwendungen wie ESRI ArcGIS ausführen. Diese Karten haben 6 GB Videospeicher. Neuere NVIDIA GRID-Karten haben 8 GB Videospeicher und eine wesentlich höhere Verarbeitungsleistung (mehr CUDA-Kerne). Bei NVIDIA GRID K2-Karten wurde bei bis zu 20 Benutzern pro GRID K2-Karte eine gute Leistung beobachtet. Bei anderen Anwendungen kann die Skalierbarkeit wesentlich höher liegen; sie können 32 gleichzeitige Benutzer bei einem Profi-GPU erreichen.

Einige Anwendungen handhaben fehlenden Videospeicher besser als andere. Wenn die Hardware stark überlastet wird, kann der Grafikkartentreiber instabil werden oder abstürzen. Schränken Sie die Anzahl der gleichzeitigen Benutzer ein, um diese Probleme zu vermeiden.

Sie können die GPU-Beschleunigung mit einem Tool von Drittanbietern bestätigen, z. B. GPU-Z. GPU-Z finden Sie unter http://www.techpowerup.com/gpuz/.

Wiedergabe von DirectX, Direct3D und WPF

Die Wiedergabe von DirectX, Direct3D und WPF steht nur auf Servern zur Verfügung, die einen Grafikprozessor haben, der eine Anzeigetreiberschnittstelle der Version 9ex, 10 oder 11 unterstützt.
  • Unter Windows Server 2008 R2 sind für DirectX und Direct3D keine Sondereinstellungen erforderlich, um einen einzelnen GPU zu verwenden.
  • Unter Windows Server 2012 verwenden Remotedesktopdienste-Sitzungen auf dem RD-Sitzungshostserver als Standardadapter den Microsoft Basic Render-Treiber. Um den GPU in RDS-Sitzungen unter Windows Server 2012 zu verwenden, aktivieren Sie die Einstellung Use the hardware default graphics adapter for all Remote Desktop Services sessions in der Gruppenrichtlinie "Lokale Computerrichtlinie > Computerkonfiguration > Administrative Vorlagen > Windows-Komponenten > Remotedesktopdienste > Remotedesktop-Sitzungshost > Remotesitzungsumgebung".
  • Unter Windows Server 2008 R2 und Windows Server 2012 verwenden alle DirectX- und Direct3D-Anwendungen in allen Sitzungen standardmäßig den gleichen einzelnen GPU. Um die Unterstützung für ein experimentelles Feature zu aktivieren, das die Benutzersitzungen für DirectX- und Direct3D-Anwendungen auf alle geeigneten GPUs verteilt, erstellen Sie die folgenden Einstellungen in der Registrierung des Servers, auf dem die Windows-Serverbetriebssystemsitzungen ausgeführt werden:
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] "DirectX"=dword:00000001
    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\CtxHook\AppInit_Dlls\Graphics Helper] "DirectX"=dword:00000001
  • Um die Wiedergabe von WPF-Anwendungen mit der GPU des Servers zu aktivieren, müssen Sie in der Registrierung des Servers, der die Windows-Serverbetriebssystemsitzungen ausführt, die folgenden Einstellungen erstellen:
    • [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

Experimentelle GPU-Beschleunigungsfunktion für CUDA- oder OpenCL-Anwendungen

Experimentelle Unterstützung wird bereitgestellt für GPU-Beschleunigung von CUDA- und OpenCL-Anwendungen, die in einer Benutzersitzung ausgeführt werden. Diese Unterstützung ist in der Standardeinstellung deaktiviert, Sie können sie jedoch für Test- und Evaluierungszwecke aktivieren.

Aktivieren Sie die folgenden Registrierungseinstellungen, um die experimentellen CUDA-Beschleunigungsfeatures zu verwenden:
  • [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
Aktivieren Sie die folgenden Registrierungseinstellungen, um die experimentellen OpenCL-Beschleunigungsfeatures zu verwenden:
  • [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