AMD (NvV4-series) and Microsoft Windows Virtual Desktop (WVD)

Hi all

I am excited to share this is a blogseries around better understanding the value of NVv4-series in Azure and I will cover different views. From what NVv4-series is, which software vendors it works with and which remoting technology it can be used with, and I also cover later in a blogpost how you can scale and run different workloads and utilize the AMD CPU/GPU and how you can monitor and troubleshoot.

In this blogpost i will cover the overview of Microsoft Windows Virtual Desktop and how it can be hardware accelerated (GPU) enabled with AMD CPU/GPU more specific the NVv4 series in Azure.

You will learn what offerings Microsoft have with Windows Virtual Desktop high level and where you can access the NVv4-series in which Azure datacenter. The process which is required to start and how you can start enabling your VM’s with graphics acceleration.

I will also cover what the difference is with the difference NVv4 instances and the use cases how to use them with Windows Virtual Desktop.

Windows Virtual Desktop have now been GA for almost a year, and it have been a huge success globally. NVv4-series also have 1 year anniversary as it was GA in 4th March 2020, which I covered in a blogpost here

All remote users use modern applications

  • Enterprise require modern desktop experiences to keep up with application, web and OS advancements 
  • Shift in how people are using tools today to work and collaboration
  • GPU is as important as a CPU today – it impacts user experience

Workers are getting more feature rich experience. The modern worker interact with graphic rich web experience. Office365 requires more graphics demand such as Word, Excel, Powerpoint, Outlook, PowerBI, Teams. Video conference systems such as Zoom, Google Hangout also requires GPU. If you are considering using Teams its highly recommended to use GPU inside the WVD environment to get better user experience, even if you are using teams optimisation.

Power users are getting more rich features in Adobe to better do graphics design and image manipulation to give you some examples on why GPU is a requirement for a Power user.

Pro/Designers work with 3D design, modeling and animation, which can be all from a game developer to an animator or engineer/architect. Gpu simulation and rendering is common used with Pro/designers and requires the larger GPU instances, but with NVv4-series it’s now possible to give a user partial of a GPU and lowering the cost and give just what you need instead of paying for an entire GPU.

NVv4-series – The CPU

Inside the NVv4-series there is a AMD EPYC “ROME” Cpu platform.

More specific its the AMD EPYC 7742 processor.

Benefits

  • Up to 32 Epyc “Rome” vCores @2.44 GHz clock (even @ full TDP!!
  • Very strong IPC (parity or better vs Xeon)
  • Huge dedicated L3 per CCX provides isolation from noisy compute neighbours
  • NV4as_v4 (4 vCPU) fits entirely in CCX

NVv4-series – The GPU

AMD INSTINCT MI25 GPU platform for NVv4-series

  • 16GB memory/frame buffer
  • 24.6 Gflops GPU Shader Compute
    (@ 16-bit precision)
  • ACE (Asynchronous Compute Engine)
  • SRIOV/MxGPU + GPU-P

Benefits of SR-IOV

  • SRIOV is a method for providing each VM with it’s own fully-virtualized GPU (or other PCI) device
  • AMD’s SRIOV is implemented via fixed-function hardware on the GPU/host  
  • Offers exceptional protection and security for each partitioned VM at the host level via HyperV/GPU-P
  • Delivers Predictable/Fixed Performance 
  • Offers exceptional protection against noisy neighbors 
Each Virtual Function is given a dedicated
& isolated slice of the GPU memory.  

The Physical Function is the controller for access to the registers assigned to a Virtual Function.
The guest OS recognizes the GPU as a pass through device

Memory is wiped between context switches.

Predictable performance and security with hardware partitioning of the GPU

In Azure, the security of the customer’s workload is always a top priority. SR-IOV based GPU partitioning provides a strong, hardware-backed security boundary with predictable performance for each virtual machine. Microsoft partition a single AMD Radeon Instinct MI 25 GPU and allocate it up to eight virtual machines. Each virtual machine can only access the GPU resources dedicated to them and the secure hardware partitioning prevents unauthorized access by other VMs.

The diagram describes the interactions between the host and the guest SR-IOV drivers for GPU partitioning

NVv4-series – Types of instances

The NVv4 VM sizes mapped to different VDI user profiles to guide customers to pick the right sized VM
IMPORTANT note:
NV4as_v4 is limited to 18FPS so if you require more FPS I highly recommend using min. NV8as_v4 or higher instance.
NV4as_v4 is not an instance I would use for GDI/O365/Youtube apps, but it could be used for very light GPU CAD apps

NV8as_v4 or higher instance are instances I would recommend for O365 apps/Youtube or higher Graphics demanding applications.

ACU: 230-260
Premium Storage: Supported
Premium Storage caching: Supported
Live Migration: Not Supported
Memory Preserving Updates: Not Supported
VM Generation Support: Generation 1 and 2
Accelerated Networking: Supported
Ephemeral OS Disks: Supported 

SizevCPUMemory: GiBTemp storage (SSD) GiBGPUGPU memory: GiBMax data disksMax NICs / Expected network bandwidth (MBps)
Standard_NV4as_v4414881/8242 / 1000
Standard_NV8as_v48281761/4484 / 2000
Standard_NV16as_v416563521/28168 / 4000
Standard_NV32as_v432112704116328 / 8000

1 NVv4-series VMs feature AMD Simultaneous multithreading Technology

NVv4-series – Availability in which Azure datacenter.

AMERICAEUROPEASIA PACIFIC
East USNorth EuropeJapan East
Soutch Central USUK SouthAustralia East
West US 2West EuropeCentral India
North Central USSoutheast Asia
US Gov VirginiaKorea Central *
Canada Central
Above locations is gathered March 2021

Microsoft is keep adding more datacenter locations with NVv4-series and more capacity is added but to be updated. I highly recommend you goto following URL to see latest availability or what is planned for NVv4-series

https://azure.microsoft.com/en-us/global-infrastructure/services/?regions=all&products=virtual-machines

NVv4-series – Supported operating systems and drivers

OSDriver
Windows 10 Enterprise multi-session – Build 1909 

Windows 10 – Build 1909

Windows Server 2016

Windows Server 2019
20.Q4 (.exe)
These are the official supported OS, but newer OS might work fine, but its not “official supported”.
If you are not sure ask Microsoft or an AMD representative.

NVv4-series – Recommended GPO to configure

For all Windows OS to NVv4-series configure a GPO – 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.

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 fullscreen video encoding
Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment Enabled – Prioritize H.264/AVC 444 Graphics mode for Remote Desktop connections Enabled – Configure H.264/AVC hardware encoding for Remote Desktop connections

Note
GPU-accelerated frame encoding is not available in NVv4-series VMs.

Note If you use build 1903/1909 then you may need to update the following group policy for optimal performance. These changes are not needed for any other Windows builds.

[Computer Configuration->Policies->Windows Settings->Administrative Templates->Windows Components->Remote Desktop Services->Remote Desktop Session Host->Remote Session Environment], set the Policy [Use WDDM graphics display driver for Remote Desktop Connections] to Disabled.

Note In Windows Server 2016, set option Prefer AVC Hardware Encoding to Always attempt.

NVv4-series – AMD GPU driver

Source: AMD GPU Drivers

You have several choice to install the AMD GPU Driver with either choosing the VM Extensions, Azure Resource Manager Template, Powershell, Teraform or manual. I am only going to cover VM extension and manual method.

NOTE: Make sure you use the latest supported AMD GPU Driver.

Install the AMD GPU Driver with VM Extension

Choose VM extension on virtual machine and click add, then choose AMD GPU extension

Wait a few minutes and the driver will be automatically installed. and you will see it under device manager as explained below under validation of GPU driver.

HINT If you have an older AMD GPU Driver installed with the extension make sure to uninstall before you reinstall the AMD extension

Install the AMD GPU Driver Manually

Login to VM and download and install the latest driver.20.Q4 (.exe), reboot the VM after the GPU driver is installed

Hint – If you need to uninstall the previous driver version then download the AMD cleanup utility here. Please do not use the utility that comes with the previous version of the driver.

Verify the AMD GPU Driver installation

In device manager

Check the version is correct (26.20.13025.5098) which is = .20.Q4 (.exe)
In program and features it says 19.30.25.05

Under “Task manager” 
You can validate the AMD CPU

File 
O CPU 
GHz 
O Memory 
2.wag.0 
C) Ethernet 
2 
O GPUO 
Lim 
open 
—Validate you see the AMD EBYC CPU 
CPU 
0% 
153 
AMD 7V12 64-core Processor 
2.44 GHz 
1523 57883

And the AMD GPU

0 CPU 
1 ) GHz 
0 ~ n10 
0 Ethernet 
S: Kbps ~ g,O Kbps 
0 GPI-J 0 
on n M … 
GPI-J 
High p , , Compute 
Radeon Instinct M25 MXGPIJ 
、 u PCI B .. 
01 / 18 ℃ GB 
0.1/4.0GB 
0.0 / 14 ℃ GB

Now you can start working and using the AMD GPU.

NVv4-series AMD GPU driver supports following APIs

  • OpenGL 4.6
  • OpenCL™ 2.0
  • DirectX® 12.0
  • Vulkan® 1.1

To finish of the blog, here is a quickstep for setting up NVv4-series, good luck.

Source

https://docs.microsoft.com/en-us/azure/virtual-machines/nvv4-series

https://azure.microsoft.com/en-us/blog/power-your-azure-gpu-workstations-with-flexible-gpu-partitioning/

https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/hpccompute-amd-gpu-windows

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/n-series-amd-driver-setup

Leave a Reply

Your email address will not be published. Required fields are marked *

Turn on pictures to see the captcha *