Skip to content

Commit d07497e

Browse files
committed
edit pass: enable-gpu-acceleration
1 parent 43a314d commit d07497e

File tree

1 file changed

+60
-50
lines changed

1 file changed

+60
-50
lines changed
Lines changed: 60 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,129 @@
11
---
22
title: Configure GPU for Azure Virtual Desktop - Azure
3-
description: How to enable GPU-accelerated rendering and encoding in Azure Virtual Desktop.
3+
description: Learn how to enable GPU-accelerated rendering and encoding in Azure Virtual Desktop.
44
author: femila
55
ms.topic: how-to
66
ms.date: 05/06/2019
77
ms.author: femila
88
---
99

10-
# Configure graphics processing unit (GPU) acceleration for Azure Virtual Desktop
10+
# Configure GPU acceleration for Azure Virtual Desktop
1111

12-
>[!IMPORTANT]
13-
>This content applies to Azure Virtual Desktop with Azure Resource Manager Azure Virtual Desktop objects. If you're using Azure Virtual Desktop (classic) without Azure Resource Manager objects, see [this article](./virtual-desktop-fall-2019/configure-vm-gpu-2019.md).
12+
> [!IMPORTANT]
13+
> This content applies to Azure Virtual Desktop with Azure Resource Manager objects. If you're using Azure Virtual Desktop (classic) without Azure Resource Manager objects, see [this article](./virtual-desktop-fall-2019/configure-vm-gpu-2019.md).
1414
15-
Azure Virtual Desktop supports GPU-accelerated rendering and encoding for improved app performance and scalability. GPU acceleration is particularly crucial for graphics-intensive apps and is supported in the following operating systems:
15+
Azure Virtual Desktop supports graphics processing unit (GPU) acceleration in rendering and encoding for improved app performance and scalability. GPU acceleration is crucial for graphics-intensive apps and is supported in the following operating systems:
1616

1717
* Windows 10 version 1511 or newer
1818
* Windows Server 2016 or newer
1919

20-
>[!NOTE]
21-
> Multi-session versions of Windows are not specifically listed, however each GPU in NV-series Azure virtual machine comes with a GRID license that supports 25 concurrent users. For more information, see [NV-series](../virtual-machines/nv-series.md).
20+
The list doesn't specifically include multiple-session versions of Windows. However, each GPU in NV-series Azure virtual machines (VMs) comes with a GRID license that supports 25 concurrent users. For more information, see [NV-series](../virtual-machines/nv-series.md).
2221

23-
Follow the instructions in this article to create a GPU optimized Azure virtual machine, add it to your host pool, and configure it to use GPU acceleration for rendering and encoding. This article assumes you have already [created a host pool](./create-host-pools-azure-marketplace.md) and an [application group](./manage-app-groups.md).
22+
Follow the instructions in this article to create a GPU-optimized Azure virtual machine, add it to your host pool, and configure it to use GPU acceleration for rendering and encoding. This article assumes that you already [created a host pool](./create-host-pools-azure-marketplace.md) and an [application group](./manage-app-groups.md).
2423

25-
## Select an appropriate GPU-optimized Azure virtual machine size
24+
## Select an appropriate GPU-optimized Azure VM size
2625

27-
Select one of Azure's [NV-series](../virtual-machines/nv-series.md), [NVv3-series](../virtual-machines/nvv3-series.md), [NVv4-series](../virtual-machines/nvv4-series.md), [NVadsA10 v5-series](../virtual-machines/nva10v5-series.md), or [NCasT4_v3-series](../virtual-machines/nct4-v3-series.md) VM sizes to use as a session host. These are tailored for app and desktop virtualization and enable most apps and the Windows user interface to be GPU accelerated. The right choice for your host pool depends on a number of factors, including your particular app workloads, desired quality of user experience, and cost. In general, larger and more capable GPUs offer a better user experience at a given user density, while smaller and fractional-GPU sizes allow more fine-grained control over cost and quality. Note that NV-series VMs are planned to be retired. For more information, see [NV retirement](../virtual-machines/nv-series-retirement.md).
26+
Select one of the Azure [NV-series](../virtual-machines/nv-series.md), [NVv3-series](../virtual-machines/nvv3-series.md), [NVv4-series](../virtual-machines/nvv4-series.md), [NVadsA10 v5-series](../virtual-machines/nva10v5-series.md), or [NCasT4_v3-series](../virtual-machines/nct4-v3-series.md) VM sizes to use as a session host. These sizes are tailored for app and desktop virtualization. They enable most apps and the Windows user interface to be GPU accelerated.
2827

29-
>[!NOTE]
30-
>Azure's NC, NCv2, NCv3, ND, and NDv2 series VMs are generally not appropriate for Azure Virtual Desktop session hosts. These VMs are tailored for specialized, high-performance compute or machine learning tools, such as those built with NVIDIA CUDA. They do not support GPU acceleration for most apps or the Windows user interface.
28+
The right choice for your host pool depends on a number of factors, including your particular app workloads, desired quality of user experience, and cost. In general, larger and more capable GPUs offer a better user experience at a given user density. Smaller and fractional GPU sizes allow more fine-grained control over cost and quality.
29+
30+
Note that NV-series VMs are planned to be retired. For more information, see [NV retirement](../virtual-machines/nv-series-retirement.md).
31+
32+
Also, Azure NC, NCv2, NCv3, ND, and NDv2 series VMs are generally not appropriate for Azure Virtual Desktop session hosts. These VMs are tailored for specialized, high-performance compute or machine learning tools, such as those built with NVIDIA CUDA. They don't support GPU acceleration for most apps or the Windows user interface.
3133

3234
## Install supported graphics drivers in your virtual machine
3335

34-
To take advantage of the GPU capabilities of Azure N-series VMs in Azure Virtual Desktop, you must install the appropriate graphics drivers. Follow the instructions at [Supported operating systems and drivers](../virtual-machines/sizes-gpu.md#supported-operating-systems-and-drivers) to install drivers. Only drivers distributed by Azure are supported.
36+
To take advantage of the GPU capabilities of Azure N-series VMs in Azure Virtual Desktop, you must install the appropriate graphics drivers. Follow the instructions at [Supported operating systems and drivers](../virtual-machines/sizes-gpu.md#supported-operating-systems-and-drivers) to install drivers. Only Azure-distributed drivers are supported.
37+
38+
Keep this size-specific information in mind:
39+
40+
* For Azure NV-series, NVv3-series or NCasT4_v3-series VMs, only NVIDIA GRID drivers support GPU acceleration for most apps and the Windows user interface. NVIDIA CUDA drivers don't support GPU acceleration for these VM sizes.
3541

36-
* For Azure NV-series, NVv3-series or NCasT4_v3-series VMs, only NVIDIA GRID drivers, and not NVIDIA CUDA drivers, support GPU acceleration for most apps and the Windows user interface. If you choose to install drivers manually, be sure to install GRID drivers. If you choose to install drivers using the Azure VM extension, GRID drivers will automatically be installed for these VM sizes.
37-
* For Azure NVv4-series VMs, install the AMD drivers provided by Azure. You may install them automatically using the Azure VM extension, or you may install them manually.
42+
If you choose to install drivers manually, be sure to install GRID drivers. If you choose to install drivers by using the Azure VM extension, GRID drivers will automatically be installed for these VM sizes.
43+
* For Azure NVv4-series VMs, install the AMD drivers that Azure provides. You can install them automatically by using the Azure VM extension, or you can install them manually.
3844

39-
After driver installation, a VM restart is required. Use the verification steps in the above instructions to confirm that graphics drivers were successfully installed.
45+
After driver installation, a VM restart is required. Use the verification steps in the preceding instructions to confirm that graphics drivers were successfully installed.
4046

4147
## Configure GPU-accelerated app rendering
4248

43-
By default, apps and desktops running on Windows Server are rendered with the CPU and do not leverage available GPUs for rendering. Configure Group Policy for the session host to enable GPU-accelerated rendering:
49+
By default, apps and desktops running on Windows Server are rendered with the CPU and don't use available GPUs for rendering. Configure Group Policy for the session host to enable GPU-accelerated rendering:
4450

45-
1. Connect to the desktop of the VM using an account with local administrator privileges.
46-
2. Open the Start menu and type "gpedit.msc" to open the Group Policy Editor.
47-
3. Navigate the tree to **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Remote Desktop Services** > **Remote Desktop Session Host** > **Remote Session Environment**.
48-
4. Select policy **Use hardware graphics adapters for all Remote Desktop Services sessions** and set this policy to **Enabled** to enable GPU rendering in the remote session.
51+
1. Connect to the desktop of the VM by using an account that has local administrator privileges.
52+
2. Open the **Start** menu and enter **gpedit.msc** to open Group Policy Editor.
53+
3. Go to **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Remote Desktop Services** > **Remote Desktop Session Host** > **Remote Session Environment**.
54+
4. Select the policy **Use hardware graphics adapters for all Remote Desktop Services sessions**. Set this policy to **Enabled** to enable GPU rendering in the remote session.
4955

5056
## Configure GPU-accelerated frame encoding
5157

52-
Remote Desktop encodes all graphics rendered by apps and desktops (whether rendered with GPU or with CPU) for transmission to Remote Desktop clients. When part of the screen is frequently updated, this part of the screen is encoded with a video codec (H.264/AVC). By default, Remote Desktop does not leverage available GPUs for this encoding. Configure Group Policy for the session host to enable GPU-accelerated frame encoding. Continuing the steps above:
58+
Remote Desktop encodes all graphics that apps and desktops render (by using either GPU or CPU) for transmission to Remote Desktop clients. When part of the screen is frequently updated, this part of the screen is encoded with a video codec (H.264/AVC). By default, Remote Desktop doesn't use available GPUs for this encoding.
5359

54-
>[!NOTE]
55-
>GPU-accelerated frame encoding is not available in NVv4-series VMs.
60+
Configure Group Policy for the session host to enable GPU-accelerated frame encoding. The following procedure continues the previous steps.
5661

57-
1. Select policy **Configure H.264/AVC hardware encoding for Remote Desktop connections** and set this policy to **Enabled** to enable hardware encoding for AVC/H.264 in the remote session.
62+
> [!NOTE]
63+
> GPU-accelerated frame encoding is not available in NVv4-series VMs.
5864
59-
>[!NOTE]
60-
>In Windows Server 2016, set option **Prefer AVC Hardware Encoding** to **Always attempt**.
65+
1. Select the policy **Configure H.264/AVC hardware encoding for Remote Desktop connections**. Set this policy to **Enabled** to enable hardware encoding for AVC/H.264 in the remote session.
6166

62-
2. Now that the group policies have been edited, force a group policy update. Open the Command Prompt and type:
67+
If you're using Windows Server 2016, set **Prefer AVC Hardware Encoding** to **Always attempt**.
68+
69+
2. Now that you've edited the policies, force a Group Policy update. Open the command prompt and enter:
6370

6471
```cmd
6572
gpupdate.exe /force
6673
```
6774
6875
3. Sign out from the Remote Desktop session.
6976
70-
## Configure fullscreen video encoding
77+
## Configure full-screen video encoding
78+
79+
> [!NOTE]
80+
> You can enable full-screen video encoding even without a GPU present.
7181
72-
>[!NOTE]
73-
>Fullscreen video encoding can be enabled even without a GPU present.
82+
If you often use applications that produce content of a high frame rate, such as 3D modeling, CAD/CAM, and video applications, you might choose to enable full-screen video encoding for a remote session. A full-screen video profile provides a higher frame rate and better user experience for such applications, at the expense of network bandwidth and both session host and client resources. We recommend that you use GPU-accelerated frame encoding for a full-screen video encoding.
7483
75-
If you often use applications that produce a high-frame rate content, such as 3D modeling, CAD/CAM and video applications, you may choose to enable a fullscreen video encoding for a remote session. Fullscreen video profile provides a higher frame rate and better user experience for such applications at expense of network bandwidth and both session host and client resources. It is recommended to use GPU-accelerated frame encoding for a full-screen video encoding. Configure Group Policy for the session host to enable fullscreen video encoding. Continuing the steps above:
84+
Configure Group Policy for the session host to enable full-screen video encoding. Continuing the previous steps:
7685
77-
1. Select policy **Prioritize H.264/AVC 444 Graphics mode for Remote Desktop connections** and set this policy to **Enabled** to force H.264/AVC 444 codec in the remote session.
78-
2. Now that the group policies have been edited, force a group policy update. Open the Command Prompt and type:
86+
1. Select policy the **Prioritize H.264/AVC 444 Graphics mode for Remote Desktop connections**. Set this policy to **Enabled** to force the H.264/AVC 444 codec in the remote session.
87+
2. Now that you've edited the policies, force a Group Policy update. Open the command prompt and enter:
7988
8089
```cmd
8190
gpupdate.exe /force
8291
```
8392
8493
3. Sign out from the Remote Desktop session.
94+
8595
## Verify GPU-accelerated app rendering
8696
87-
To verify that apps are using the GPU for rendering, try any of the following:
97+
To verify that apps are using the GPU for rendering, try either of the following methods:
8898
89-
* For Azure VMs with a NVIDIA GPU, use the `nvidia-smi` utility as described in [Verify driver installation](../virtual-machines/windows/n-series-driver-setup.md#verify-driver-installation) to check for GPU utilization when running your apps.
90-
* On supported operating system versions, you can use the Task Manager to check for GPU utilization. Select the GPU in the "Performance" tab to see whether apps are utilizing the GPU.
99+
* For Azure VMs with an NVIDIA GPU, use the `nvidia-smi` utility to check for GPU utilization when running your apps. For more information, see [Verify driver installation](../virtual-machines/windows/n-series-driver-setup.md#verify-driver-installation).
100+
* On supported operating system versions, you can use Task Manager to check for GPU utilization. Select the GPU on the **Performance** tab to see whether apps are utilizing the GPU.
91101
92102
## Verify GPU-accelerated frame encoding
93103
94104
To verify that Remote Desktop is using GPU-accelerated encoding:
95105
96-
1. Connect to the desktop of the VM using Azure Virtual Desktop client.
97-
2. Launch the Event Viewer and navigate to the following node: **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreCDV** > **Operational**
98-
3. To determine if GPU-accelerated encoding is used, look for event ID 170. If you see "AVC hardware encoder enabled: 1" then GPU encoding is used.
106+
1. Connect to the desktop of the VM by using the Azure Virtual Desktop client.
107+
2. Open Event Viewer and go to the following node: **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreCDV** > **Operational**.
108+
3. Look for event ID 170. If you see **AVC hardware encoder enabled: 1**, Remote Desktop is using GPU-accelerated encoding.
99109
100110
> [!TIP]
101-
> If you're connecting to your session host outside of Azure Virtual Desktop for testing GPU acceleration, the logs will instead be stored in **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreTs** > **Operational** in Event Viewer.
111+
> If you're connecting to your session host outside Azure Virtual Desktop for testing GPU acceleration, the logs are instead stored in **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreTs** > **Operational** in Event Viewer.
102112
103-
## Verify fullscreen video encoding
113+
## Verify full-screen video encoding
104114
105-
To verify that Remote Desktop is using fullscreen video encoding:
115+
To verify that Remote Desktop is using full-screen video encoding:
106116
107-
1. Connect to the desktop of the VM using Azure Virtual Desktop client.
108-
2. Launch the Event Viewer and navigate to the following node: **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreCDV** > **Operational**
109-
3. To determine if fullscreen video encoding is used, look for event ID 162. If you see "AVC Available: 1 Initial Profile: 2048" then AVC 444 is used.
117+
1. Connect to the desktop of the VM by using the Azure Virtual Desktop client.
118+
2. Open Event Viewer and go to the following node: **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreCDV** > **Operational**.
119+
3. Look for event ID 162. If you see **AVC Available: 1 Initial Profile: 2048**, Remote Desktop is using full-screen video encoding (AVC 444).
110120
111121
> [!TIP]
112-
> If you're connecting to your session host outside of Azure Virtual Desktop for testing GPU acceleration, the logs will instead be stored in **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreTs** > **Operational** in Event Viewer.
122+
> If you're connecting to your session host outside Azure Virtual Desktop for testing GPU acceleration, the logs are instead stored in **Applications and Services Logs** > **Microsoft** > **Windows** > **RemoteDesktopServices-RdpCoreTs** > **Operational** in Event Viewer.
113123
114124
## Next steps
115125
116-
These instructions should have you up and running with GPU acceleration on one session host (one VM). Some additional considerations for enabling GPU acceleration across a larger host pool:
126+
These instructions should have you operating with GPU acceleration on one session host (one VM). Here are some additional considerations for enabling GPU acceleration across a larger host pool:
117127
118-
* Consider using a [VM extension](../virtual-machines/extensions/overview.md) to simplify driver installation and updates across a number of VMs. Use the [NVIDIA GPU Driver Extension](../virtual-machines/extensions/hpccompute-gpu-windows.md) for VMs with NVIDIA GPUs, and use the [AMD GPU Driver Extension](../virtual-machines/extensions/hpccompute-amd-gpu-windows.md) for VMs with AMD GPUs.
119-
* Consider using Active Directory Group Policy to simplify group policy configuration across a number of VMs. For information about deploying Group Policy in the Active Directory domain, see [Working with Group Policy Objects](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731212(v=ws.11)).
128+
* Consider using a [VM extension](../virtual-machines/extensions/overview.md) to simplify driver installation and updates across VMs. Use the [NVIDIA GPU Driver Extension](../virtual-machines/extensions/hpccompute-gpu-windows.md) for VMs with NVIDIA GPUs. Use the [AMD GPU Driver Extension](../virtual-machines/extensions/hpccompute-amd-gpu-windows.md) for VMs with AMD GPUs.
129+
* Consider using Active Directory to simplify Group Policy configuration across VMs. For information about deploying Group Policy in the Active Directory domain, see [Working with Group Policy Objects](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731212(v=ws.11)).

0 commit comments

Comments
 (0)