none
WMS2012 RDSH ==> does a GPU in the host really help for graphics performance? RRS feed

  • Question

  • Hallo,

    I tought that even in RDSH server mode, a GPU in the host could help performance wise through the use of RFX? (I always use RDSH mode in my WMS2012 installations, never VDI.)

    However this article 

    http://windowsitpro.com/windows-server-2016/when-gpu-can-be-utilized-session-virtualization-2016 

    makes me wonder if that is the case. If the article is correct a GPU can only help in RDVH, at least until WS2016 comes along. Unles I'm missing something...

    Any useful info on this (GPU or not in RDSH) would really be appreciated.

    Best,

    Bavo Bostoen

    Saturday, April 9, 2016 2:24 PM

Answers

  • Hi Bavo:

    Great to hear you are testing with Graphics Virtualization and Remote Desktop Protocol. I hope the details below will help answer your questions:

    Hyper-V & Graphics Virtualization

    With Hyper-V there are two options for Graphics Virtualization with Windows Server 2016 Technical Preview:

    1. RemoteFX vGPU: Enables sharing of 1 or more GPU's with many VM's, and supports OpenGL 4.4/OpenCL 1.1 with Win10 guest VM: http://social.technet.microsoft.com/wiki/contents/articles/31771.experience-guide-for-enabling-opengl-support-for-vgpu-in-server-2016.aspx (RemoteFX vGPU was originally introduced in Hyper-V/Remote Desktop Virtualization Host with Windows Server 2008 R2 SP1)

    2. Discrete Device Assignment: Enables ability to assign 1 or more GPU's to 1 VM. This is new in Windows Server 2016 Technical Preview 4. The benefit is that you get maximum performance but your scale will be limited by the number of GPU's you have in the server. Another benefit is that the native driver for the GPU can used inside the Guest VM. More information can be found here: https://blogs.technet.microsoft.com/virtualization/2015/11/23/discrete-device-assignment-gpus/

    Remote Desktop Session Host (RDSH) support with GPU acceleration:

    In Windows Server 2012 there was a Group Policy added which allows GPU acceleration in RDP sessions where you are remoting to a physical machine. RDSH can take advantage of this however you should carefully test since your scale will be limited due to GPU contention. In addition not all API's (DX/OpenGL/OpenCL) may be available and will depend on your Graphics card/driver support by the GPU vendor.

    To turn this on use the following Group Policy:

    To configure the Group Policy on the Remote Desktop Session Host (RDSH) Machine: 1. Open the Group Policy Editor: gpedit.msc 2. Navigate the tree: Computer Configuration -> Administrator Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment -> Use the hardware default graphics adapter for all Remote Desktop Services sessions 3. Configure the Policy to be "Enabled"

    Note 1: Discrete Device Assignment (DDA) in Windows Server 2016 Technical Preview exposes the GPU using native driver, and therefore the group policy will apply. Though note that GPU vendors may block certain functionality depending on card and driver when used in a remote session, so careful testing is recommended.

    Note 2: This group policy does not work with RemoteFX vGPU, since the GPU is para-virtualized.

    RDP 3rd party clients & RemoteFX Calista CODEC

    When a 3rd party client refers to RemoteFX on the client side, it usually means that the RDP client supports the RemoteFX Calista Graphics Compression Codec that was introduced with RDP 7.1 (though you should confirm this with your Thin Client vendor). Since RDP 8.0 the required CODEC's have been standardized regardless of connecting to RDVH or RDSH. To support RDP 8 and up you have to implement: Progressive Calista, Clear Codec and Planar (Lossless) and with RDP 10 we added AVC444 to this list as well. This is documented for implementers as part of the open specifications [MS-RDPEGFX]: https://msdn.microsoft.com/en-us/library/hh554846.aspx

    More information about AVC444 mode can be found here: https://blogs.msdn.microsoft.com/rds/2016/01/11/remote-desktop-protocol-rdp-10-avch-264-improvements-in-windows-10-and-windows-server-2016-technical-preview/

    Best Regards,

    J. van Eesteren [Microsoft]


    Friday, April 15, 2016 12:33 AM

All replies

  • Windows 2012 / 2012 R2 RDSH does not have any improvement if you have a GPU. It's only working if you have a GPU on the RDVH and you are running Windows clients OS (not Servers) and those client OS must be Windows 7, 8, 8.1 Enterprise Edition for all of them.  For Windows 10, I think it should work with the Pro edition but I'm not sure.

    This posting is provided AS IS without warranty of any kind

    Sunday, April 10, 2016 1:29 AM
  • I already suspected that a physical GPU in an RDSH host doesn't do anything, but I was confused by my vendor's proposal to include a really powerful GPU in the proposed RDSH server... (he knew full well that I'm not using RDVH). After some more reading it seems clear that RemoteFX does include enhancements that also work for RDSH, but it is a subset (of RDVH) and does not work through a vGPU.

    What is less clear: we have (multiprotocol) LAN thin clients (from IGEL), and in their RDP session settings they do offer a RemoteFX checkbox, and also the possibility to do local processing of some codecs like H264. However, they run some form of Linux as their (thin) OS.  So the question is what features are exactly supported in their RDP client implementation? If a lot of RemoteFX features are implemented through Microsoft specific extensions of the RDP protocol, how can we even know what a thin client supports (some, all, none, do they license the protocol from MS or reverse engineer it etc)?

    For Windows server 2016, new features will be added like H264 4:4:4 encoding-decoding. I really wish MS would consolidate all relevant info per OS/RDP version, and clearly state what is for RDVH and RDSH.

    As regards info from the manufacturer, I have the impression they have a more experience with Citrix & VMWare remoting protocls and servers. I work in education where there is a lot of MS because of good VL deals we can get.

    If anyone feels like clarifying, be my guest :-).

     

    Sunday, April 10, 2016 3:15 PM
  • Hi Bavo:

    Great to hear you are testing with Graphics Virtualization and Remote Desktop Protocol. I hope the details below will help answer your questions:

    Hyper-V & Graphics Virtualization

    With Hyper-V there are two options for Graphics Virtualization with Windows Server 2016 Technical Preview:

    1. RemoteFX vGPU: Enables sharing of 1 or more GPU's with many VM's, and supports OpenGL 4.4/OpenCL 1.1 with Win10 guest VM: http://social.technet.microsoft.com/wiki/contents/articles/31771.experience-guide-for-enabling-opengl-support-for-vgpu-in-server-2016.aspx (RemoteFX vGPU was originally introduced in Hyper-V/Remote Desktop Virtualization Host with Windows Server 2008 R2 SP1)

    2. Discrete Device Assignment: Enables ability to assign 1 or more GPU's to 1 VM. This is new in Windows Server 2016 Technical Preview 4. The benefit is that you get maximum performance but your scale will be limited by the number of GPU's you have in the server. Another benefit is that the native driver for the GPU can used inside the Guest VM. More information can be found here: https://blogs.technet.microsoft.com/virtualization/2015/11/23/discrete-device-assignment-gpus/

    Remote Desktop Session Host (RDSH) support with GPU acceleration:

    In Windows Server 2012 there was a Group Policy added which allows GPU acceleration in RDP sessions where you are remoting to a physical machine. RDSH can take advantage of this however you should carefully test since your scale will be limited due to GPU contention. In addition not all API's (DX/OpenGL/OpenCL) may be available and will depend on your Graphics card/driver support by the GPU vendor.

    To turn this on use the following Group Policy:

    To configure the Group Policy on the Remote Desktop Session Host (RDSH) Machine: 1. Open the Group Policy Editor: gpedit.msc 2. Navigate the tree: Computer Configuration -> Administrator Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment -> Use the hardware default graphics adapter for all Remote Desktop Services sessions 3. Configure the Policy to be "Enabled"

    Note 1: Discrete Device Assignment (DDA) in Windows Server 2016 Technical Preview exposes the GPU using native driver, and therefore the group policy will apply. Though note that GPU vendors may block certain functionality depending on card and driver when used in a remote session, so careful testing is recommended.

    Note 2: This group policy does not work with RemoteFX vGPU, since the GPU is para-virtualized.

    RDP 3rd party clients & RemoteFX Calista CODEC

    When a 3rd party client refers to RemoteFX on the client side, it usually means that the RDP client supports the RemoteFX Calista Graphics Compression Codec that was introduced with RDP 7.1 (though you should confirm this with your Thin Client vendor). Since RDP 8.0 the required CODEC's have been standardized regardless of connecting to RDVH or RDSH. To support RDP 8 and up you have to implement: Progressive Calista, Clear Codec and Planar (Lossless) and with RDP 10 we added AVC444 to this list as well. This is documented for implementers as part of the open specifications [MS-RDPEGFX]: https://msdn.microsoft.com/en-us/library/hh554846.aspx

    More information about AVC444 mode can be found here: https://blogs.msdn.microsoft.com/rds/2016/01/11/remote-desktop-protocol-rdp-10-avch-264-improvements-in-windows-10-and-windows-server-2016-technical-preview/

    Best Regards,

    J. van Eesteren [Microsoft]


    Friday, April 15, 2016 12:33 AM
  • Thanks a lot for the info.

    Final question regarding RDSH: did MS conduct any testing when RDPing into a physical machine as to how many stations could take advantage of the GPU in the host, without too much contention? I'm curious.

    Thanks again,

    Bavo

    Friday, April 15, 2016 10:04 PM
  • Hi Bavo:

    There aren't any specific numbers we have to share at this point but it depends on the applications and the GPU that is used. I would recommend to test this and see how many users you can get on the system. 

    Best Regards,

    J. van Eesteren [Microsoft]

    Friday, April 15, 2016 10:41 PM
  • Hallo J.,

    I'm still somewhat confused, so here are (a lot ;-) of follow-up questions:

    1. so DDA will work with WMS2016 in RDSH mode? (although DDA is mentioned under the heading RDVH in your first post).

    2. If this is the case: will the WMS2016 server need to run as a physical machine, or should it be run (virtualized) on Hyper-V, where the Hyper-V host has assigned the GPU to the VM running WMS2016.

    3. If both methods work I suppose physical is the better option if you only intend to use the server for the WMS role?

    4. If you choose to virtualize WMS2016, can this be a gen 2 VM?

    5. If you use DDA does this exclude RFX technologies and advantages (such as being able to work over WAN or environments with a lot of latency)? And will the RDP client of thin clients need to be adapted to take advantage of this?

    6. How will we know if the driver of the GPU in the server will support all necessary features, will there be a list or compatibility page from Microsoft? You mention contacting the manufacturer but in my experience few support staff know what RFX is about (in any detail)...

    I'm trying to wrap my head around the question how DDA & RFX relate to each other, if at all. And how to choose the best configuration for K12 school deployments where +/- 15-25 students need to work simultaneously, usually in LAN environments (so latency is not the biggest problem...).

    All relevant information/advice is very welcome.

    Thanks,

    Bavo

    Monday, April 25, 2016 8:11 AM
  • Hi Bavo:

    Please find below answers to your questions
    1. so DDA will work with WMS2016 in RDSH mode? (although DDA is mentioned under the heading RDVH in your first post).
    Yes it will work (with the group policy enabled) though note that you should test this given that GPU resources aren't governed for each RDSH session, meaning that one user could take all the rendering resources.

    2. If this is the case: will the WMS2016 server need to run as a physical machine, or should it be run (virtualized) on Hyper-V, where the Hyper-V host has assigned the GPU to the VM running WMS2016.

    Discreet Device Assignment (DDA) is a Hyper-V specific technology, however the Group Policy I mentioned also works with physical machine.

    3. If both methods work I suppose physical is the better option if you only intend to use the server for the WMS role?

    Yes, given that you will not have the overhead of the host/Hypervisor.

    4. If you choose to virtualize WMS2016, can this be a gen 2 VM?

    Yes

    5. If you use DDA does this exclude RFX technologies and advantages (such as being able to work over WAN or environments with a lot of latency)? And will the RDP client of thin clients need to be adapted to take advantage of this?

    DDA is separate from the RDP Protocol. RemoteFX is referring to various technologies used by Remote Desktop Services (RemoteFX vGPU, Adaptive Graphics, USB redirection etc), DDA enables you to have the GPU acceleration with a GPU directly mapped to the VM, while RDP  features (adaptive graphics etc) are provided by the OS running inside the VM

    6. How will we know if the driver of the GPU in the server will support all necessary features, will there be a list or compatibility page from Microsoft? You mention contacting the manufacturer but in my experience few support staff know what RFX is about (in any detail)...

    The general question to the manufacturer is whether GPU's are supported in VDI/Remoting Environment. In general the GPU's that are supported are the server/workstation class GPU's (NVidia Quadro/Grid, AMD FirePro, etc.). However you should verify with the GPU manufacturer and test.

    Best Regards,

    J. van Eesteren [Microsoft]

    Tuesday, May 3, 2016 9:17 PM
  • Hallo Jeroen, I finally had a chat with a development support team at our thin client vendor. They actually use two open source implementations of an RDP client - FreeRDP and rDesktop - to integrate RDP into their Linux OS. They also say they are a Microsoft partner and that they usually end up implementing all relevant MS RDP features, but it takes time and they do not make any promises regarding future features (like those in Windows Server 2016). They also told me that Citrix and VMWare simply deliver Linux implementations of their remoting protocols directly to the TC vendors, containing all important/recent features, and these are maintained by the protocol vendors. Would it be possible for MS to do the same? This would probably bring accelerated support for RDP to the TC world (especially for the more recent features), and MS lately is becoming Linux friendly in other areas (SQL on Linux, good Linux VM support in Azure etc), so why not for remoting. Anyway, thanks for all the useful info you provided. Regards, Bavo
    Sunday, May 15, 2016 4:04 PM
  • J. van Eesteren seems the one and only person on the entire planet who understands GPUs in session host environments.  Took me a few years, but I've finally found him!

    I'm interested in buying and installing an Nvidia Quadro K5100M card into a Dell Blade M630 server.  If I then install Server 2016 TP5 and add the session host role, will my end client devices be able to stream HTML5 youtube videos?

    Currently they are very jerky on 2012 R2

    Thanks!!

    Thursday, July 7, 2016 9:43 AM
  • Thanks Bavo for the feedback and suggestion, please also see the following site for posting/suggesting improvements: https://remotedesktop.uservoice.com/forums/266795-remote-desktop-services-for-enterprises

    Thursday, July 7, 2016 11:48 PM
  • @GlenHarrison

    It depends on the video card driver and whether the browser in the remote session supports hardware acceleration for video decoding (note: to test if this works on RDSH you have to have the group policy enabled that I mentioned in the earlier replies in this thread). In addition you will also have to take into account the encoding time for RDP, and if your users are primarily watching YouTube videos then the scale of your RDSH server will also be affected. So I would recommend to test and see how things work for your environment.

    Friday, July 8, 2016 12:10 AM
  • Hi Jeroen,

    Great to find this thread and you. Hopefully you can answer the following?

    Will Remotefx vGPU ever be enabled for multisession RDSH?

    Will a Remotefx vGPU or DDA GPU enabled multisession RDSH VM be able to be live migrated on a 2016 S2D with GPU Cluster?

    Thanks

    Nigel

    Wednesday, August 17, 2016 12:02 AM
  • Hi Jeroen,

    Great to find this thread and you. Hopefully you can answer the following?

    Will Remotefx vGPU ever be enabled for multisession RDSH?

    Will a Remotefx vGPU or DDA GPU enabled multisession RDSH VM be able to be live migrated on a 2016 S2D with GPU Cluster?

    Thanks

    Nigel

    We're running some tests over the next few weeks with:

    Server HyperV 2016 Bare Metal with Nvidia Quadro

    Server 2016 (RDS-SH role) as a VM with an assigned vGPU

    Windows 10 Anni Ed Client RDP connecting to the VM

    Hopefully we'll see some GPU improvements.  I'll report back, but will be in my thread (see my profile)


    • Edited by GlenHarrison Wednesday, August 17, 2016 11:51 AM
    Wednesday, August 17, 2016 11:51 AM
  • Hi GlenHarrison and Nigel:

    Will RemoteFX vGPU ever be enabled for multisession RDSH?

    Can't comment on the future, however running a Windows Server 2016 Technical Preview RDSH VM with RemoteFX vGPU enabled is not supported with multiple sessions. RemoteFX vGPU however will work with a single user with Windows Server 2016

    To get GPU acceleration for RDSH with Hyper-V, you can leverage Windows Server 2016 VM and use DDA to assign the GPU to the VM. See my notes earlier in this thread.

    Best Regards,

    Jeroen van Eesteren [Microsoft]

    Monday, August 22, 2016 7:44 PM
  • Jeroen just pinged me about this thread.  There are a lot of good questions!

    @Nigel, to answer your second question regarding live migration. Today, RemoteFX does support live migration, however as mentioned earlier, it's not a great solution for Multi-session RDSH. As for DDA, the initial release in 2016 won't support live migration and I'm unable to comment on future releases.  What I can recommend is leverage the User voice board Jeroen mentioned earlier.

    Chris Huybregts [Microsoft]

    Monday, August 22, 2016 9:36 PM
  • ok, let's forget HyperV for a second.  Does Microsoft support GPU on RDS Session Hosts (multi users obviously) peroid?

    There are lots of conflicting reports across the internet, as was the case for 2012.

    If DDA works, which passes the PCI bus straight from the host to the VM, then surely just installing an RDS-SH server to bare metal achieves the same thing?

    If it does (and I'm a bit reluctant to believe it, as someone with over 15 years experience with MS terminal services / RDS and it's now 2016 with still no support) what requirements are needed at the client end?  RDP10 support?  straight RDP or RemoteFX?  etc etc

    I'm trying to get 4,000 linux terminals to connect to RDP/RFX with HD youtube video streaming.  Like I said, it's 2016!  do I need to buy win10 terminals?  or should I simply abandon all hope, bite the bullet and go Citrix?

    I've got the hardware, dual processor 12 core xeons with Quadro GPUs, it's just the software side I need right

    Thursday, August 25, 2016 4:33 PM
  • and the plot thickens

    according to Microsoft themselves, session hosts servers can use remotefx and stream the multimedia information to the client for decoding.  You DON'T need Hyper-V.

    Hopefully, this together with 2016 supporting local GPUs for 3D stuff should give the end user a good enough experience.

    RemoteFX

    RemoteFX introduces a set of enhancements to RDP that enables rich graphics and video capabilities within a remote desktop session, regardless of whether you are connecting to a session-based virtual desktop, running a RemoteApp program, or connecting to a VM-based virtual desktop. In all three cases, the user experience is almost identical to using a local physical desktop. RemoteFX is included in RDS, and you don’t need to enable it explicitly unless you want to use the RemoteFX virtual graphics processing unit (vGPU) on a VM-based virtual desktop. In that case, you must add hardware to the VMs that are used for the virtual desktop.

    The following is a list of some RemoteFX features:

    • RemoteFX for WAN This feature delivers an improved user experience over lower-speed networks, such as at a branch office, on a wireless device, or working from home over a WAN connection. RemoteFX for WAN combines the RemoteFX Adaptive Graphics feature with intelligent WAN-aware transports. TCP and UDP can be used for remote desktop connections. The protocol that is better suited for the current connection is selected automatically, and automatic detection of network conditions to adjust the encoding of content is available.
    • RemoteFX Adaptive Graphics This feature dynamically adapts to changing network conditions and optimizes encodings based on the content delivered. RemoteFX Adaptive Graphics use multiple codecs, which are optimized for different types of content, such as text, images, and video.
    • RemoteFX Media Streaming This feature provides redirection of multimedia content. When a user attempts to play multimedia content in a remote session, the content is intercepted and redirected to the client. The client receives the compressed content, decodes the content, and plays it back locally.
    • RemoteFX Multi-Touch This feature extends the Windows 8.1 touch experience to devices on which multi-touch is the primary means of user interaction. Windows 8.1 users are able to interact with remote desktop sessions in the same way as a local desktop, including support for multi-touch gestures and the ability to navigate between local and remote sessions by using touch.
    • RemoteFX USB Redirection This feature enables devices to redirect at the USB level. Because of this, no device drivers are required on the client computer, and any USB device—including audio, storage, all-in-one printers, and scanners—can be redirected.

    Wednesday, August 31, 2016 12:00 PM
  • Hoping to resurrect this thread, at least for a bit.

    After exhaustive googling and reading through this thread, I'm still unclear whether it's possible to properly stream YouTube videos across multiple RDP sessions on a 2012 RDSH VM whose host has a GPU.  Like many, many others, I have thin clients that want to view YouTube videos without lag and stuttering.  In particular:

    1. Generally speaking, does a GPU core = one RDP session?
    2. Is, or is not, Hyper-V required for a RDSH to utilize a GPU?  @GlenHarrison's post immediately above would indicate no, but that was 9 months ago.
    3. What about an RDSH VM on a VMware-based host that also has a GPU?
    4. Has anyone actually been able to test this?

    Hope I'm not coming across as too frustrated.  It's just one of those situations that is hard to believe is happening in the year 2017.

    Thursday, May 4, 2017 5:46 PM
  • from the years of research I've spent on this (were using server 2016 now)

    for smooth video:

    remotefx is enabled by default on all rdssh hosts post 2012.  This encodes the video stream to h264 on the host using CPU.  GPU makes no difference.  The RDP stream is sent to the client which then decodes the stream.  The client must be capable of decoding h264 and also the rdp client software need to support it.  If you have say a windows 10 client, then fine.  If you have a zero terminal, then it may not.  I'm currently speaking to the guys over at igel using their latest firmware.  I'll let you know what I find, and may publish a youtube video showing the differences with it enabled and disabled so you can see if theres any difference.

    Igel do what's called a media codec pack which sends the decoding of the h264 codec embedded in the rdp stream to the clients GPU.  If you buy a terminal from them the media pack is free, if you buy the udc converter to turn old computers into igel terminals then the media codec pack is an added cost.

    I did install a quadro graphics card in the host and whilst it made zero different to video, I was able to render 3d graphics using the heaven benchmarking software.  It was a limited test though as we have no current requirements for 3d graphics.  It was a single user test.

    It may be that for a multi user environment on rdssh desktop sessions that the rds server needs to be sat on hyper-v, with the hyper-v gpu assigned to the physical gpu in the server.  Like I say, not done much testing for that yet.  In any case, it doesn't make any difference for video.

    Our hosts are bare metal (dell poweredge blade servers) with no hyper-v in place.




    Friday, May 5, 2017 8:36 AM
  • @GlenHarrison, thank you for your input- even if it's disappointing.  But information is power, right?  :-)

    So, then, if I'm processing all of this correctly, all data sent out via RemoteFX is h264 encoded, regardless of the nature of that data?  Based on what I've been seeing (no pun intended), I' say that's the case.  Whenever I tried to tune RFX to get what should be better quality video, it actually got worse.  I'd say that's because I was actually complicating the decoding workload on the thin clients that we have.

    So, for me and my company, it's time to regroup to figure out our next steps since the ability to watch video is getting increasingly important in my company.

    Thanks again.

    Friday, May 5, 2017 11:52 AM
  • It's nice to know I'm not the only one who's been struggling with this and finding little in the way of hard facts from Microsoft.  We have been working to build a Server 2016 RDSH farm for a customer over the past six months, which will provide them with enough graphics performance to enable HD streaming video (YouTube, Vimeo, etc) and other graphic-intensive applications to the end user.  We were extremely excited about the advancements in Server 2016 in regards to graphics, specifically Discrete Device Assignment and the ability to leverage real GPU drivers inside a guest VM.  We purchased top of the line 24-core Dell R730s spec'd to the max with PCIe NVMe flash storage (Intel) and two nVidia Quadro physical GPUs per server.  Between the lightening fast storage, beefy GPUs, tons of RAM, and top-spec CPUs, we figured we were more than well equipped to build some blazing fast session hosts.  Six months later and we have discovered the following:

    1. DDA only plays well with very specific GPUs and drivers, our first attempt at leveraging ATI Firepro M10000 GPUs failed due to driver incompatibility.  Very little information exists on the web regarding which GPUs and drivers actually work with DDA.

    2. When assigning a DDA GPU to a RDSH VM, there appears to be a hard limit on the number of sessions you can run simultaneously, perhaps depending on the GPU.  In our testing, we could not run more than ten simultaneous users per session host without Windows shutting down the GPU drivers (seen in device manager with the nasty little yellow exclamation) due to detecting a hardware problem.  This was with a single 8GB GPU per VM. 

    3. Running the GPUs without DDA and using RemoteFX instead does not appear to work in a multi-session VM, such as an RDSH.  This was noted a few times by Microsoft in various documentation and it is in fact true at this point.

    4. There may be additional tuning options which can be applied to the DDA GPU to allow better performance/more density, but with very limited documentation from MS it's been a ton of trial and error with little result.

    5. Thankfully, the performance enhancements native to Server 2016 (both Hyper-V host and RDSH farm guests), combined with the insane speed of PCIe NVMe local storage, has enabled us to provide an end-user experience over RDP that is the closest to bare-metal PCs that I've ever seen.  This includes video/audio streaming (with or without DDA) that is good (read good, not perfect) and that has been more than enough to satisfy 95% of the users in this case.  The performance difference between this farm and the previous Server 2008 R2 farm (running on Dell R710s with shared iSCSI SAN storage) is night and day.

    Hopefully this will be helpful to others dealing with similar frustrations while designing RD environments or spec'ing Server 2016 hardware.  I wish Microsoft would provide us with more information regarding testing and tuning that I'm positive they've done quite a bit of (and continue to do).  But until then we'll need to look to the user community for answers...  

    Tuesday, June 6, 2017 8:21 PM
  • The servers CPU will be what's improving video, the GPUs will be doing little to nothing.  Also, ensure your client machines can decode h264 either with a newish cpu or a gpu.
    Wednesday, June 7, 2017 1:33 PM
  • @GlenHarrison

    Agreed, the difference in video performance we've noticed is negligible with/without the physical GPUs.  The biggest difference we notice is that it frees up the CPU to perform other tasks, rather than wasting cycles on users streaming video (particularly HD video).  This can be a rather significant improvement in cases where you're looking to get as much user density out of every physical host server as possible.  With multiple users streaming video simultaneously, we've seen the DDA GPU push its processor to nearly 100%.

    Separately, for 3D applications, there is quite a noticeable difference both in frame rate and in rendering quality when using the physical GPUs with DDA vs the virtualized video adapter. 

    As a side note, my note of there being a hard limit on simultaneous user sessions (number 2 in the post above) turned out to be a bug in Server 2016 which has yet to be resolved. See:

    https://social.technet.microsoft.com/Forums/en-US/6779b586-c158-491c-b76b-353d5a490642/server-2016-rds-connections-maxing-out-and-crashing-dwmexe?forum=winserverTS

    It appears to only effect NVIDIA GPU equipped session hosts however.  Hopefully MS will resolve this with a patch or NVIDIA will get involved.  Funny that MS/NVIDIA were pushing their hardware as the GPU of choice for all these new features in Server 2016 (http://images.nvidia.com/content/grid/pdf/microsoft-server-solution.pdf) but they're the ones with compatibility issues in practice...

    Wednesday, June 7, 2017 5:23 PM