Azure Virtual Desktop 用 GPU アクセラレーションを構成する

重要

このコンテンツは、Azure Resource Manager オブジェクトを含む Azure Virtual Desktop に適用されます。 Azure Resource Manager オブジェクトを含まない Azure Virtual Desktop (クラシック) を使用している場合は、こちらの記事を参照してください。

Azure Virtual Desktop は、アプリのパフォーマンスとスケーラビリティを向上させるために、レンダリングとエンコードにおけるグラフィックス プロセッシング ユニット (GPU) アクセラレーションをサポートしています。 GPU アクセラレーションは、グラフィックスを集中的に使用するアプリにとって非常に重要であり、Azure Virtual Desktop でサポートされているすべてのオペレーティング システムで使用できます。

この一覧には、Windows のマルチセッション バージョンは特に含まれていません。 ただし、NV シリーズの Azure 仮想マシン (VM) の各 GPU には、25 人の同時ユーザーをサポートする GRID ライセンスが付属しています。 詳細については、「NV シリーズ」を参照してください。

この記事では、GPU で最適化された Azure 仮想マシンを作成し、それをホスト プールに追加して、レンダリングとエンコードに GPU アクセラレーションを使うように構成する方法について説明します。

前提条件

この記事では、ホスト プールとアプリケーション グループが既に作成されていることを前提としています。

GPU で最適化する Azure VM の適切なサイズを選択する

セッション ホストとして使用する Azure NV シリーズNVv3 シリーズNVv4 シリーズNVadsA10 v5 シリーズ、または NCasT4_v3 シリーズの VM サイズのいずれかを選びます。 これらのサイズは、アプリとデスクトップの仮想化に合わせて調整されています。 これらにより、ほとんどのアプリと Windows ユーザー インターフェイスを GPU で高速化できます。

実際のホスト プールに適した選択は、特定のアプリ ワークロード、ユーザー エクスペリエンスの望ましい品質、コストなど、多くの要因に依存します。 一般に、GPU が大きくて高機能であるほど、特定のユーザー密度でのユーザー エクスペリエンスはよくなります。 小さい GPU サイズと小数点 GPU サイズを使用すると、コストと品質をよりきめ細かく制御できます。

Note

NV シリーズの VM は提供終了が予定されています。 詳細については、NV の提供終了に関する記事を参照してください。

Azure NC、NCv2、NCv3、ND、NDv2 シリーズの VM は通常、Azure Virtual Desktop のセッション ホストには適していません。 これらの VM は、NVIDIA CUDA を使用して構築されたものなど、特殊な高パフォーマンスのコンピューティング ツールまたは機械学習ツール向けに設計されています。 ほとんどのアプリまたは Windows ユーザー インターフェイスでは、GPU アクセラレーションはサポートされていません。

サポートされているグラフィック ドライバーを仮想マシンにインストールする

Azure Virtual Desktop 内で Azure N シリーズ VM の GPU 機能を利用するには、適切なグラフィック ドライバーをインストールする必要があります。 「サポートされているオペレーティング システムとドライバー」の手順に従って、ドライバーをインストールします。 Azure 分散ドライバーのみがサポートされています。

このサイズ固有の情報は次の点に注意してください。

  • Azure NV シリーズ、NVv3 シリーズ、または NCasT4_v3 シリーズの VM の場合、NVIDIA GRID ドライバーでのみ、ほとんどのアプリと Windows ユーザー インターフェイスの GPU アクセラレータがサポートされます。 NVIDIA CUDA ドライバーは、これらの VM サイズの GPU アクセラレーションをサポートしていません。

    ドライバーを手動でインストールする場合は、必ず GRID ドライバーをインストールしてください。 Azure VM 拡張機能を使用してドライバーをインストールすることを選択した場合は、これらの VM サイズに応じて、GRID ドライバーが自動的にインストールされます。

  • Azure NVv4 シリーズ VM の場合は、Azure が提供する AMD ドライバーをインストールします。 Azure VM 拡張機能を使用して自動的にインストールすることも、手動でインストールすることもできます。

ドライバーをインストールした後は、VM を再起動する必要があります。 前述の説明の検証手順を使って、グラフィック ドライバーが正常にインストールされたことを確認します。

GPU アクセラレーションを使用するアプリ レンダリングを構成する

既定では、Windows Server で実行されるアプリとデスクトップは CPU でレンダリングされ、使用可能な GPU はレンダリングに利用されません。 セッション ホストのグループ ポリシーを構成して、GPU アクセラレーションを使用するレンダリングを有効にします。

  1. ローカル管理者特権を持つアカウントを使って、VM のデスクトップに接続します。
  2. [スタート] メニューを開き、「gpedit.msc」と入力して、グループ ポリシー エディターを開きます。
  3. [コンピューターの構成]>[管理用テンプレート]>[Windows コンポーネント]>[リモート デスクトップ サービス]>[リモート デスクトップ セッション ホスト]>[リモート セッション環境] に移動します。
  4. すべてのリモート デスクトップ サービス セッションにハードウェア グラフィックス アダプターを使用するポリシーを選択します。 リモート セッションで GPU レンダリングを有効にするには、このポリシーを有効に設定します。

GPU アクセラレーションを使用するフレーム エンコードを構成する

リモート デスクトップは、アプリとデスクトップがリモート デスクトップ クライアントに送信するためにレンダリングするすべてのグラフィックスをエンコードします。 画面の一部が頻繁に更新される場合、画面のこの部分はビデオ コーデック (H.264/AVC) を使用してエンコードされます。 既定では、リモート デスクトップでは、このエンコードに使用可能な GPU は利用されません。

セッション ホストのグループ ポリシーを構成して、GPU アクセラレーションを使用するフレーム エンコードを有効にします。 次の手順では、前の手順を続行します。

Note

GPU アクセラレーションを使用するフレーム エンコードは、NVv4 シリーズの VM では使用できません。

  1. リモート デスクトップ接続の H.264/AVC ハードウェア エンコードの構成ポリシーを選択します。 リモート セッションで AVC/H.264 のハードウェア エンコードを有効にするには、このポリシーを有効に設定します。

    Windows Server 2016 を使用している場合は、[AVC ハードウェア エンコードを優先][常に試行] に設定します。

  2. ポリシーを編集したので、グループ ポリシーを強制的に更新します。 管理者としてコマンド プロンプトを開き、次のコマンドを実行します。

    gpupdate.exe /force
    
  3. リモート デスクトップ セッションからサインアウトします。

全画面表示のビデオ エンコードを構成する

Note

GPU が存在しない場合でも、全画面表示のビデオ エンコードを有効にできます。

高フレーム レートのコンテンツを生成するアプリケーションを頻繁に使用する場合は、リモート セッションに対して全画面表示のビデオ エンコードを有効にすることを選択できます。 このようなアプリケーションには、3D モデリング、CAD/CAM、またはビデオ アプリケーションが含まれる場合があります。

全画面表示のビデオ プロファイルでは、ネットワーク帯域幅と、セッション ホストとクライアント リソースの両方を犠牲にして、これらのアプリケーション用の高フレーム レートとより良いユーザー エクスペリエンスが提供されます。 全画面表示のビデオ エンコードには、GPU アクセラレーションを使用するフレーム エンコードの使用をおすすめします。

全画面表示のビデオ エンコードを有効にするセッション ホストのグループ ポリシーを構成します。 前の手順を続行します。

  1. リモート デスクトップ接続の H.264/AVC 444 グラフィックス モード優先するポリシーを選択します。 リモート セッションで H.264/AVC 444 コーデックを強制するには、このポリシーを [有効] に設定します。

  2. ポリシーを編集したので、グループ ポリシーを強制的に更新します。 管理者としてコマンド プロンプトを開き、次のコマンドを実行します。

    gpupdate.exe /force
    
  3. リモート デスクトップ セッションからサインアウトします。

GPU アクセラレーションを使用するアプリ レンダリングを検証する

アプリでレンダリングに GPU が使われていることを確認するには、次のいずれかの方法を試します。

  • NVIDIA GPU を搭載した Azure VM の場合は、nvidia-smi ユーティリティを使用して、アプリ実行時の GPU 使用率を確認します。 詳細については、「ドライバーのインストールを確認する」を参照してください。
  • サポートされているオペレーティング システムのバージョンでは、タスク マネージャーを使って GPU の使用率を確認できます。 [パフォーマンス] タブで GPU を選択し、アプリで GPU が利用されているかどうかを確認します。

GPU アクセラレーションを使用するフレーム エンコードを検証する

リモート デスクトップで GPU アクセラレーションを使用するエンコードが使われていることを検証するには:

  1. Azure Virtual Desktop クライアントを使って VM のデスクトップに接続します。
  2. イベント ビューアーを開き、[アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[RemoteDesktopServices-RdpCoreCDV]>[Operational] ノードに移動します。
  3. イベント ID 170 を探します。 「AVC ハードウェア エンコーダが有効です: 1」 と表示される場合、リモート デスクトップでは GPU アクセラレーション エンコードが使用されます。

ヒント

GPU アクセラレーションをテストするために Azure Virtual Desktop の外部のセッション ホストに接続している場合、ログは代わりに、イベント ビューアーの [アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[RemoteDesktopServices-RdpCoreTs]>[Operational] に保存されます。

全画面表示のビデオ エンコードを確認する

リモート デスクトップで全画面表示のビデオ エンコードが使用されていることを検証するには:

  1. Azure Virtual Desktop クライアントを使って VM のデスクトップに接続します。
  2. イベント ビューアーを開き、[アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[RemoteDesktopServices-RdpCoreCDV]>[Operational] ノードに移動します。
  3. イベント ID 162 を探します。 「AVC Available: 1 Initial Profile: 2048」と表示される場合、リモート デスクトップでは全画面表示のビデオ エンコード (AVC 444) が使用されます。

ヒント

GPU アクセラレーションをテストするために Azure Virtual Desktop の外部のセッション ホストに接続している場合、ログは代わりに、イベント ビューアーの [アプリケーションとサービス ログ]>[Microsoft]>[Windows]>[RemoteDesktopServices-RdpCoreTs]>[Operational] に保存されます。

次のステップ

これらの手順により、1 つのセッション ホスト (1 つの VM) で GPU アクセラレーションが動作するようになります。 さらに大きなホスト プールで GPU アクセラレーションを有効にするための追加の考慮事項を次に示します。