Citrix Virtual Apps and Desktops

WindowsマルチセッションOSのためのGPUアクセラレーション

Citrix Virtual Apps and Desktopsでは、WindowsマルチセッションOSのセッションで実行しているグラフィック処理アプリケーションで、サーバー上のGPU(Graphics Processing Unit)リソースを使用できます。OpenGL、DirectX、Direct3D、およびWindows Presentation Foundation(WPF)の処理をサーバーのGPUに移すことで、サーバーのCPUをより効率的に使用できます。

Windows Serverはマルチユーザーオペレーティングシステムなので、GPU仮想化(vGPU)を行わなくても、Citrix Virtual AppsがアクセスするGPUを複数のユーザーで共有できます。

このトピックの説明にはレジストリの編集が含まれています。レジストリエディターの使用を誤ると、深刻な問題が発生する可能性があり、Windowsの再インストールが必要になる場合もあります。レジストリエディターの誤用による障害に対して、Citrixでは一切責任を負いません。レジストリエディターは、お客様の責任と判断の範囲でご使用ください。また、レジストリファイルのバックアップを作成してから、レジストリを編集してください。

GPU共有

GPU共有により、リモートデスクトップセッションで動作するOpenGLアプリケーションおよびDirectXアプリケーションでGPUハードウェアによるレンダリング処理が可能になります。GPU共有には、以下の特徴があります:

  • ベアメタルまたは仮想マシン上で使用でき、アプリケーションのスケーラビリティとパフォーマンスが向上します。
  • 複数の同時接続セッションでGPUリソースを共有できます(ほとんどのユーザーは専用GPUのレンダリングパフォーマンスを必要としません)。
  • 特別な設定は必要ありません。

GPUは、ハイパーバイザーとGPUベンダーの要件に従って、完全パススルーモードまたは仮想GPU(vGPU)モードのいずれかで、Windows Server仮想マシンに割り当てることができます。物理Windows Serverマシンでのベアメタル展開もサポートされています。

GPU共有は、特定のグラフィックカードに依存するものではありません。

  • 仮想マシンの場合は、使用中のハイパーバイザーと互換性のあるグラフィックカードを選択します。XenServerのハードウェア互換性リストについては、「Hypervisorハードウェア互換性リスト」を参照してください 。
  • ベアメタルを実行するときは、オペレーティングシステムで単一のディスプレイアダプターを有効にすることをお勧めします。複数のGPUがハードウェアに取り付けられている場合は、デバイスマネージャーを使用して1つだけ残して無効にします。

GPU共有でのスケーラビリティは、以下の要素により異なります。

  • 実行するアプリケーション
  • 消費されるビデオRAMの量
  • グラフィックカードの処理能力

一部のアプリケーションでは、ビデオRAMの不足をより効果的に処理できます。ハードウェアが過負荷になると、グラフィックカードドライバーが不安定になるか、クラッシュが発生する可能性があります。このような問題を避けるには、同時接続ユーザーの数を制限してください。

  • NVIDIA GPUの高パフォーマンスビデオエンコーダーとIntel Iris Proグラフィックプロセッサへのアクセス。ポリシー設定(デフォルトで有効)によりこの機能を制御し、H.264エンコーディングのハードウェアエンコーディングを許可します(利用可能な場合)。該当するハードウェアが利用可能でない場合、VDAはソフトウェアビデオコーデックを使用して、CPUベースのエンコーディングにフォールバックします。詳しくは、「グラフィックのポリシー設定」を参照してください。

GPUアクセラレーションが発生していることを確認するには、グラフィックス状態インジケーターを使用できます:

グラフィックス状態インジケーター

DirectX、Direct3D、およびWPFレンダリング

DirectX、Direct3D、およびWPFレンダリングは、DDI(Display Driver Interface)Version 9ex、10、または11をサポートするGPUが搭載されたサーバーでのみ使用可能です。

  • Windows Server 2016以降のRD Session Hostサーバー上のリモートデスクトップサービス(RDS)セッションでは、デフォルトのアダプターとしてMicrosoft基本レンダリングドライバーが使用されます。Windows Server 2016以降のRDSセッションでGPUを使用するには、グループポリシーの [Local Computer Policy]>[Computer Configuration]>[Administrative Templates]>[Windows Components]>[Remote Desktop Services]>[Remote Desktop Session Host]>[Remote Session Environment][Use the hardware default graphics adapter] を有効にします。
  • WPFアプリケーションでのレンダリングにサーバーのGPUを使用するようにするには、WindowsマルチセッションOSセッションを実行するサーバー上でレジストリキーを設定します。レジストリの設定について詳しくは、レジストリを介して管理される機能の一覧にある「Windows Presentation Foundation(WPF)のレンダリング」を参照してください。

CUDAまたはOpenCLアプリケーション用のGPUアクセラレーション機能

ユーザーセッションで実行中のCUDAおよびOpenCLアプリケーションのGPUアクセラレーションは、デフォルトで無効です。

CUDAアクセラレーション機能を使用するには、レジストリ設定を有効にします。詳しくは、レジストリを介して管理される機能の一覧にある「CUDAまたはOpenCLアプリケーション用のGPUアクセラレーション機能」を参照してください。

WindowsマルチセッションOSのためのGPUアクセラレーション