Azure Virtual Desktop (クラシック) のグラフィックス処理装置 (GPU) アクセラレーションを構成する

重要

この内容は、Azure Resource Manager Azure Virtual Desktop オブジェクトをサポートしていない Azure Virtual Desktop (クラシック) に適用されます。 Azure Resource Manager Azure Virtual Desktop オブジェクトを管理しようとしている場合は、こちらの記事を参照してください。

Azure Virtual Desktop では、アプリのパフォーマンスとスケーラビリティを向上させるために、GPU アクセラレーションを使用したレンダリングとエンコードがサポートされています。 GPU アクセラレーションは、グラフィックを多用するアプリケーションの場合に特に重要です。

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

GPU で最適化する Azure 仮想マシンのサイズを選択する

Azure では、複数の GPU 最適化済み仮想マシン サイズが提供されています。 実際のホスト プールに適した選択は、特定のアプリ ワークロード、ユーザー エクスペリエンスの望ましい品質、コストなど、さまざまなの要因に依存します。 一般に、GPU が大きくて高機能であるほど、特定のユーザー密度でのユーザー エクスペリエンスはよくなります。

ホスト プールを作成して、仮想マシンをプロビジョニングし、アプリ グループを構成する

選択したサイズの VM を使って、新しいホスト プールを作成します。 手順については、「チュートリアル:Azure Marketplace を使用してホスト プールを作成する」をご覧ください。

Azure Virtual Desktop では、次のオペレーティング システムで GPU アクセラレーションを使用したレンダリングとエンコードがサポートされています。

  • Windows 10 バージョン 1511 以降
  • Windows Server 2016 以降

アプリ グループを構成するか、または新しいホスト プールを作成すると自動的に作成される ("デスクトップ アプリケーション グループ" という名前の) 既定のデスクトップ アプリケーション グループを使う必要もあります。 手順については、チュートリアル: Azure Virtual Desktop 用アプリケーション グループの管理に関するページをご覧ください。

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

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

Azure Virtual Desktop でサポートされているのは、Azure によって配布されたドライバーだけです。 さらに、NVIDIA GPU を搭載した Azure VM の場合、Azure Virtual Desktop でサポートされているのは NVIDIA GRID ドライバーだけです。

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

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

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

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

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

リモート デスクトップでは、リモート デスクトップ クライアントへの送信用にアプリとデスクトップでレンダリングされるすべてのグラフィックスが (GPU または CPU のどちらでレンダリングされるかに関係なく) エンコードされます。 既定では、リモート デスクトップによるこのエンコードに、使用可能な GPU は利用されません。 セッション ホストのグループ ポリシーを構成して、GPU アクセラレーションを使用するフレーム エンコードを有効にします。 上記の手順に続けて次のようにします。

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

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

    注意

    Windows Server 2016 では、 [AVC ハードウェア エンコードを優先] オプションを [常に試行] に設定します。

  3. グループ ポリシーを編集したので、強制的にグループ ポリシーを更新します。 コマンド プロンプトを開き、次のように入力します。

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

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. GPU アクセラレーションを使用するエンコードが使われているかどうかを確認するには、イベント ID 170 を探します。 [AVC ハードウェア エンコーダーが有効になりました: 1] と表示される場合は、GPU エンコードが使われています。
  4. AVC 444 モードが使われているかどうかを確認するには、イベント ID 162 を探します。 [AVC 対応: 1、初期プロファイル: 2048] と表示される場合は、AVC 444 が使われています。

次のステップ

これらの手順により、1 つのセッション ホスト (1 つの VM) で GPU アクセラレーションが稼働状態になるはずです。 さらに大きなホスト プールで GPU アクセラレーションを有効にするには、いくつか追加の考慮事項があります。

  • 多数の VM でのドライバーのインストールと更新を簡素化するには、VM 拡張機能を使用することを検討してください。 NVIDIA GPU が搭載された VM には NVIDIA GPU ドライバー拡張機能を使用し、AMD GPU が搭載された VM には AMD GPU ドライバー拡張機能を使用します。
  • 多数の VM でのグループ ポリシーの構成を簡素化するには、Active Directory グループ ポリシーを使うことを検討します。 Active Directory ドメインでのグループ ポリシーのデプロイについては、「Working with Group Policy Objects (グループ ポリシー オブジェクトの操作)」をご覧ください。