NVIDIA
GRID K1 - Windows 10 sizing
For an upgrade project, based on VMware Horizon View, where there was a request to migratie from Windows 7 to Windows 10 I ran into the fact that when selecting the 512 MB profile K120Q, there was no longer an option for multimonitor available. Or better said, it was available but not working... When trying to start a session, it would only let me use a single monitor, the other one remained blank. I am aware of the sizing limitations when using Windows 10 since it is more framebuffer hungry, but there are some usecases that would need multimonitor, but not a lot of framebuffer. I checked using the K140Q profile, the framebuffer usage for this particular deployment never got above 512 MB so had no problems. Is there any way to circumvent this and let us use multiple monitors on the K120Q profile? Edit: just noticed, posted this in the wrong section, could someone move it to the correct forum directory?
For an upgrade project, based on VMware Horizon View, where there was a request to migratie from Windows 7 to Windows 10 I ran into the fact that when selecting the 512 MB profile K120Q, there was no longer an option for multimonitor available. Or better said, it was available but not working... When trying to start a session, it would only let me use a single monitor, the other one remained blank.

I am aware of the sizing limitations when using Windows 10 since it is more framebuffer hungry, but there are some usecases that would need multimonitor, but not a lot of framebuffer. I checked using the K140Q profile, the framebuffer usage for this particular deployment never got above 512 MB so had no problems.

Is there any way to circumvent this and let us use multiple monitors on the K120Q profile?

Edit: just noticed, posted this in the wrong section, could someone move it to the correct forum directory?

Hans Kraaijeveld, Senior Project Engineer, EUC Consultant, Cliënt ICT Groep
Twitter: @hanskraaijeveld
Blog: https://www.plonius.com

#1
Posted 08/28/2017 09:28 AM   
[quote="hkraaijeveld"]Is there any way to circumvent this and let us use multiple monitors on the K120Q profile?[/quote] You can try to hack NVidia vGPU settings - see [url]https://gridforums.nvidia.com/default/topic/258/nvidia-grid-vgpu/documentation-for-vgpu-configs/post/4140/#4140[/url]. Find in documentation of your hypervisor how to set extra parameters (like "vgpu_extra_args" parameter "frame_rate_limiter") and set enable_win10_dual_heads_for_small_vgpu = 1
hkraaijeveld said:Is there any way to circumvent this and let us use multiple monitors on the K120Q profile?

You can try to hack NVidia vGPU settings - see https://gridforums.nvidia.com/default/topic/258/nvidia-grid-vgpu/documentation-for-vgpu-configs/post/4140/#4140.
Find in documentation of your hypervisor how to set extra parameters (like "vgpu_extra_args" parameter "frame_rate_limiter") and set enable_win10_dual_heads_for_small_vgpu = 1

#2
Posted 08/28/2017 10:39 AM   
Is this a supported configuration or is this just for testing purposes only?
Is this a supported configuration or is this just for testing purposes only?

Hans Kraaijeveld, Senior Project Engineer, EUC Consultant, Cliënt ICT Groep
Twitter: @hanskraaijeveld
Blog: https://www.plonius.com

#3
Posted 08/28/2017 11:26 AM   
Page 4 of this document says that both monitors should work with the K120Q profile: http://images.nvidia.com/content/grid/pdf/GRID-vGPU-User-Guide.pdf So there should be no need to modify the driver. Also, modifying the driver is neither supported or recommended in a production environment.
Page 4 of this document says that both monitors should work with the K120Q profile:


http://images.nvidia.com/content/grid/pdf/GRID-vGPU-User-Guide.pdf


So there should be no need to modify the driver. Also, modifying the driver is neither supported or recommended in a production environment.

#4
Posted 08/28/2017 05:02 PM   
Hi Ben, unfortunately this is not valid for Windows 10. There is a seperate Messagebox indicating that we don't support Dual Monitor for 512MB and Windows 10: *snip* GRID vGPUs with less than 1 Gbyte of frame buffer support only 1 virtual display head on a Windows 10 guest OS. *snip* Regards Simon
Hi Ben,

unfortunately this is not valid for Windows 10. There is a seperate Messagebox indicating that we don't support Dual Monitor for 512MB and Windows 10:

*snip*
GRID vGPUs with less than 1 Gbyte of frame buffer support only 1 virtual display head
on a Windows 10 guest OS.
*snip*

Regards

Simon

#5
Posted 08/29/2017 11:10 AM   
Thanks for the heads up Simon, much appreciated ... Found it (Page 7). In that case, to correct my post above ... No, there isn't a supported way to circumvent the driver. You'll need to use a profile with at least 1GB of Frame Buffer if you'd like to use W10 with multi-monitor Regards Ben
Thanks for the heads up Simon, much appreciated ... Found it (Page 7).

In that case, to correct my post above ... No, there isn't a supported way to circumvent the driver. You'll need to use a profile with at least 1GB of Frame Buffer if you'd like to use W10 with multi-monitor

Regards

Ben

#6
Posted 08/29/2017 11:25 AM   
[i]My opinion based on my findings: Microsoft Windows 10 new "Compositing window manager" (DWM.exe) problems: [list] [.]it is triple-buffer manager (Win7 "Aero" was double-buffer) -> this leads to [b][color="orange"]more GPU memory requirement[/color][/b] and higher latency for VDI[/.] [.]it has some embedded "optimization" (the problem persists from Win7) -> this leads to unpredictable and low FPS for VDI ([url]https://gridforums.nvidia.com/default/topic/1149/xendesktop-with-nvidia-grid/3d-load-impacts-nvenc-performance/post/4247/#4247[/url])[/.] [.]it is crippling by scaling non-primary monitor outputs ([url]https://medium.com/@toncijukic/windows-10-desktop-compositor-and-high-ppi-rendering-7fa29c4cc18a[/url]).[/.] [.]it cannot be disabled ![/.] [/list] NVidia GPU/vGPU driver problems: [list] [.]NVidia Video Codec SDK (this is needed by "local" HW accelerated encoding to h264 for VDI stream for most "modern" protocols ("Blast Extreme"/"HDX 3D Pro")) has [b][color="orange"]unbelievable GPU memory requirements[/color][/b] 260MB per one stream (you need two for dualmonitor, expecting 16*frame buffer size ~ 14MB for FullHD) ([url]https://devtalk.nvidia.com/default/topic/1006545/260m-gpu-memory-usage-for-one-gpu-h264-video-decoder-is-normal-/[/url])[/.] [.]NVidia Capture SDK works badly with DWM (like [url]https://gridforums.nvidia.com/default/topic/1046/nvidia-grid-apis/fullscreen-video-capture-issue/[/url])[/.] [.]vGPU 512MB profile allows to use [b]ONLY 436207616 bytes[/b] in guest (framebufferlength=0x1A000000 and reserved_fb=0x6000000 to fake/hide virtualization lost) (see [url]https://gridforums.nvidia.com/default/topic/438/xendesktop-with-nvidia-grid/k220q-video-ram-xenserver-6-5/post/1922/#1922[/url]).[/.] [.]driver randomly crashes in low GPU memory situation ![/.] [/list] Solution from NVidia - disable dualmonitor support for 512MB vGPU profiles and remove 512MB profiles form Pascal vGPU and ignore all other problems. I described only my point of view based on my real programming experiments and I do not try to interfere with NVidia's Visions. [/i]
My opinion based on my findings:

Microsoft Windows 10 new "Compositing window manager" (DWM.exe) problems:

NVidia GPU/vGPU driver problems:

Solution from NVidia - disable dualmonitor support for 512MB vGPU profiles and remove 512MB profiles form Pascal vGPU and ignore all other problems.
I described only my point of view based on my real programming experiments and I do not try to interfere with NVidia's Visions.

#7
Posted 08/30/2017 08:08 AM   
Wow thanks for the very thorough answers! That is some solid information indeed. Basically, when upgrading from windows 7 to windows 10, we need to make sure we count on 32 desktops and not 64 per M10, as marketing slides suggest... Is the 512 MB profile even viable for the future then, especially when it is already removed from the Pascal based setups? I don't really see a use case for that anymore in light of this information, except if someone does not go and use Windows 10 in the future, which seems unlikely. @mcerveny : would you mind if I take this information and write a blog about it? Seems very, very interesting to a lot of people!
Wow thanks for the very thorough answers! That is some solid information indeed. Basically, when upgrading from windows 7 to windows 10, we need to make sure we count on 32 desktops and not 64 per M10, as marketing slides suggest...

Is the 512 MB profile even viable for the future then, especially when it is already removed from the Pascal based setups? I don't really see a use case for that anymore in light of this information, except if someone does not go and use Windows 10 in the future, which seems unlikely.

@mcerveny : would you mind if I take this information and write a blog about it? Seems very, very interesting to a lot of people!

Hans Kraaijeveld, Senior Project Engineer, EUC Consultant, Cliënt ICT Groep
Twitter: @hanskraaijeveld
Blog: https://www.plonius.com

#8
Posted 08/30/2017 11:54 AM   
[i]My opinion: Iff you [b]do not use[/b] "Blast Extreme"/"HDX 3D Pro" with HW h264 encoding and [b]use only SW h264/jpeg/png[/b] (yes you lost at least one CPU for encoding per streeam) (or pcoip) in your protocol setup you can [b]probably[/b] enable second monitor without problems (#NotSupported). There is more design errors/fails with using "local" HW h264 encoder on card. The encoder is incapable for full HW acceleration on all VDI (see [url]https://gridforums.nvidia.com/default/topic/823/tesla-m10/[/url]) - on 1xK1 you can use only ~16 FHD h264 streams and on 1xM10 you can use only ~28 FHD h264 streams (not 64 and of cause not 128 for dual monitor). It is not better even with Pascal chips. [img]https://s26.postimg.org/mc5xkimqh/pascal_vgpu.jpg[/img] I described only my point of view based on my real programming experiments and I do not try to interfere with NVidia's Visions. Wait for better answer/explanation from NVidia engineers ([url]https://gridforums.nvidia.com/default/topic/823/grid-boards/tesla-m10/post/2942/#2942[/url]) or NGCA ([url]http://www.nvidia.com/object/grid-advisory-council.html[/url]). I minimize my posting on this forum. #NotSupported - The first rule of Not Supported is you don't talk about Not Supported. The next rule of Not Supported is you don't explain why. The next rule of Not Supported is ... Rules are made to be broken![/i]
My opinion:
Iff you do not use "Blast Extreme"/"HDX 3D Pro" with HW h264 encoding and use only SW h264/jpeg/png (yes you lost at least one CPU for encoding per streeam) (or pcoip) in your protocol setup you can probably enable second monitor without problems (#NotSupported).
There is more design errors/fails with using "local" HW h264 encoder on card. The encoder is incapable for full HW acceleration on all VDI (see https://gridforums.nvidia.com/default/topic/823/tesla-m10/) - on 1xK1 you can use only ~16 FHD h264 streams and on 1xM10 you can use only ~28 FHD h264 streams (not 64 and of cause not 128 for dual monitor). It is not better even with Pascal chips.

Image

I described only my point of view based on my real programming experiments and I do not try to interfere with NVidia's Visions. Wait for better answer/explanation from NVidia engineers (https://gridforums.nvidia.com/default/topic/823/grid-boards/tesla-m10/post/2942/#2942) or NGCA (http://www.nvidia.com/object/grid-advisory-council.html). I minimize my posting on this forum.

#NotSupported - The first rule of Not Supported is you don't talk about Not Supported. The next rule of Not Supported is you don't explain why. The next rule of Not Supported is ... Rules are made to be broken!

#9
Posted 08/30/2017 12:43 PM   
Hi mcerveny, thanks for your input. First of all there is no option to use NVENC on the 512MB profile as it is disabled. You already mentioned possible reasons. But the numbers you're referencing (260MB for 1 HD stream) are way to high. We talk about 80-100MB in reality. In addition we need to understand that the given H264 streams possible in our slides should just give a kind of example. In my slidedecks I prefer the real encoding performance instead of number of streams as this is misleading. Let's take the M10 example: We have 4 encoders with 210fs each so we could deliver 4x7xFullHD@30fps. In theory we could overload the encoder as we get 32 VMs with 1GB profile on a M10. But keep in mind that the reality looks different. M10 use case is office workers and I've not seen a single customer running 28 streams FullHD with 30fps simultaniously. Real 3D use case looks different but here we have 36streams on M60 for 16 users which means every user could run 2xFullHD with 30fps. Here is a more detailed datasheet for encoding/decoding: https://developer.nvidia.com/video-encode-decode-gpu-support-matrix Regards Simon
Hi mcerveny,

thanks for your input. First of all there is no option to use NVENC on the 512MB profile as it is disabled.
You already mentioned possible reasons. But the numbers you're referencing (260MB for 1 HD stream) are way to high. We talk about 80-100MB in reality.
In addition we need to understand that the given H264 streams possible in our slides should just give a kind of example. In my slidedecks I prefer the real encoding performance instead of number of streams as this is misleading.
Let's take the M10 example:
We have 4 encoders with 210fs each so we could deliver 4x7xFullHD@30fps. In theory we could overload the encoder as we get 32 VMs with 1GB profile on a M10. But keep in mind that the reality looks different. M10 use case is office workers and I've not seen a single customer running 28 streams FullHD with 30fps simultaniously. Real 3D use case looks different but here we have 36streams on M60 for 16 users which means every user could run 2xFullHD with 30fps.
Here is a more detailed datasheet for encoding/decoding:

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix


Regards

Simon

#10
Posted 08/31/2017 10:22 AM   
[quote="sschaber"]First of all there is no option to use NVENC on the 512MB profile as it is disabled[/quote] Yes, it is true for "local" encoder. I am using "remote" encoder to resolve this problems. [quote="sschaber"]You already mentioned possible reasons. But the numbers you're referencing (260MB for 1 HD stream) are way to high. We talk about 80-100MB in reality.[/quote] Not completely true. It depends on "API" and "maxresolution". I measured 148MB GPU memory for first FHD. If there is possibility to change resolution and you cannot restart whole decoder than maxEncodeWidth/maxEncodeHeight should be set to maximum supported resolution (eg. 2560x1600 or 4096x2160) and you get higher memory allocation (eg. 213MB or 393MB for first stream even FHD). [quote="sschaber"]https://developer.nvidia.com/video-encode-decode-gpu-support-matrix [/quote] Be very careful to refer this incorrect document ([url]https://devtalk.nvidia.com/default/topic/1019670/?comment=5191551[/url]). Regards, Martin
sschaber said:First of all there is no option to use NVENC on the 512MB profile as it is disabled

Yes, it is true for "local" encoder. I am using "remote" encoder to resolve this problems.

sschaber said:You already mentioned possible reasons. But the numbers you're referencing (260MB for 1 HD stream) are way to high. We talk about 80-100MB in reality.

Not completely true. It depends on "API" and "maxresolution". I measured 148MB GPU memory for first FHD. If there is possibility to change resolution and you cannot restart whole decoder than maxEncodeWidth/maxEncodeHeight should be set to maximum supported resolution (eg. 2560x1600 or 4096x2160) and you get higher memory allocation (eg. 213MB or 393MB for first stream even FHD).

sschaber said:https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

Be very careful to refer this incorrect document (https://devtalk.nvidia.com/default/topic/1019670/?comment=5191551).

Regards, Martin

#11
Posted 08/31/2017 01:10 PM   
Scroll To Top

Add Reply