Windows Virtual Desktop on steroids with NVv4-series VM

On the 5th of March Microsoft announced the Generally Availability of the new NVv4-series VM’s on Azure. Those series are the new GPU powered instances in Microsoft Azure with AMD Radeon GPU’s.

You can now use the NVv4-series in your Windows Virtual Desktop hostpool.

In this quick blog I will show you how to configure you WVD host to use this new GPU power!

Deploy NVv4 VM

You can create your WVD hostpool via the Marketplace, Azure ARM templates or manual. Since you already got a WVD hostpool this shouldn’t be that hard to deploy the way you like it.

If you choose to deploy via an ARM template you can choose between the following SKUs:

  • Standard_NV4as_v4
  • Standard_NV8as_v4
  • Standard_NV16as_v4
  • Standard_NV32as_v4

When your VM has been deployed we need to install the AMD Video drivers and configure the Remote Desktop Connection to use the GPU rendering and encoding.

Install the drivers

First download the drivers via 20.Q1.1 (.exe), this driver is supported on Windows Server 2016/2019 and Windows 10.

You can also install the drivers via the soon to be released AMD driver extension, this way you can automate the installation of the driver via ARM templates via DevOps for example.

Log in via Remote Desktop and install the drivers. After the unpacking and installation is finished reboot your VM.

Verify driver

Just open up the device manager on your VM and expand the Display adapters. This should look like this:

![](https://stefandingemanse.com/wp-content/uploads/2020/03/9BphtDcMTc.png)
You can also use a few tools like to verify the GPU display properties. In my test case I have deployed an NVv4 VM which has 1/8 of the AMD Radeon Instinct MI25 MxGPU graphics card.
![](https://stefandingemanse.com/wp-content/uploads/2020/03/OVajb00Upm.png)
#### Configure your host to make use of this awesome powers

By default, applications and desktops running in multi-session configurations are rendered with the CPU and do not leverage the available GPU’s for rendering.

You can use Group Policy configurations for the session host to enable GPU-accelerated rendering:

First create a computer GPO for configuring “Use the hardware default graphics adapter for all Remote Desktop Services sessions” via Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment

![](https://stefandingemanse.com/wp-content/uploads/2020/03/mstsc_PjZpf85pkx.png)
Remote Desktop encodes all graphics rendered by applications and desktops (whether rendered with GPU or with CPU) for transmission to Remote Desktop clients. By default, Remote Desktop does not leverage available GPUs for this encoding.

Configure the following two policies to enable the GPU-accelerated frame encoding, the policies are on the same page as the previous one.

Prioritize H.264/AVC 444 Graphics mode for Remote Desktop connections

![](https://stefandingemanse.com/wp-content/uploads/2020/03/mstsc_n21ZIy42eQ.png)
**Configure H.264/AVC hardware encoding for Remote Desktop connections**
![](https://stefandingemanse.com/wp-content/uploads/2020/03/mstsc_FOTENbEU9W.png)
Set both options to Enabled and force a Group Policy update or reboot your VM.

Verifying and testing

Okay, now we are ready to test and play. Just open up https://youtube.com on your Session Desktop and watch the CPU/GPU performance on your task manager.

![](https://stefandingemanse.com/wp-content/uploads/2020/03/msrdc_rdSIVPEjHE-1024x623.png)
As you can see we are now using the GPU for rendering. You can verify the encoding configuration via the Event Viewer.
![](https://stefandingemanse.com/wp-content/uploads/2020/03/7lbI3xqYDl.png)
That’s it! If you got any question regarding Windows Virtual Desktop don’t hesitate to contact me.

Sources:

comments powered by Disqus