VRAM available for rendering with Windows 10 - #273017 (closed)

14567810»

Comments

  • So, for all practical purposes, that's to say, running one instance of Daz Studio and rendering an image, which is what people here are interested in doing, W10 does effectively prevent you from using all the VRAM that you paid for.

    If I bought a 1080ti and found that it had a fault, and only had 9GB of VRAM, I'd return it. That makes W10 faulty in my opinion. Unfortunately I'm stuck with it.

  • linvanchenelinvanchene Posts: 1,386
    edited September 2018

    - Updated the first post to include only the relevant information for those who need a summary.

    - Added the following disclaimer:

    It is not clear if the limitation still applies in the same form when using Iray in DAZ Studio.

    Different log files and 3rd party applications yield numbers that can be interpreted differently based on what information users trust.

    - Updated request #273017 with the information that this thread has been reactivated

    - - -

    The only people who can definitely answer if this limitation applies for DAZ Studio Iray are the developers.

    Please everyone just wait for an official answer and refrain from speculation.

    Post edited by linvanchene on
  • An option to be able to assign 100% of a GPU's memory to a specified application, especially on secondary card where no monitor is connected, would be highly beneficial., I can see where this option would be potentially problematic on a primary card though.

     

     

  • ebergerlyebergerly Posts: 3,255
    edited September 2018

     

    Please everyone just wait for an official answer and refrain from speculation.

    I appreciate your optimism, but the speculation has been ongoing here for years. And since a response still hasn't been received thru this avenue, I suggest looking elsewhere. 

    BTW, another option is to just accept that it is what it is and we'll never change it, so just keep on rendering...laugh

    Post edited by ebergerly on
  • kyoto kidkyoto kid Posts: 41,838

    ...some of the sources I have cited are from the Windows10 forums.  There is still concern there about this and people are not getting any satisfactory answers either.

  • nicsttnicstt Posts: 11,715

    It was one of the reasons I didn't buy a 1080ti to go with my 980ti; it continues to be a reason, but considering the other issues I have with 20 series cards, a more minor one I haven't bought a 2080ti

  • TaozTaoz Posts: 10,233

     

    ebergerly said:

     

    Please everyone just wait for an official answer and refrain from speculation.

    I appreciate your optimism, but the speculation has been ongoing here for years. And since a response still hasn't been received thru this avenue, I suggest looking elsewhere. 

    BTW, another option is to just accept that it is what it is and we'll never change it, so just keep on rendering...laugh

    "We know that if we say that we won't change it you'll just accept it, and buy it anyway. So therefore we won't change it".

     

  • ebergerlyebergerly Posts: 3,255
    edited October 2018
    I hear ya, but in practical terms a large corporation like NVIDIA is already working on stuff they'll introduce in the next 5-10 years. They know who are the big buyers of their stuff, and where they make the big bucks. That ship has already sailed, as they say. So if theres some info they're unaware of about the Iray market and specifically the DAZ/Poser market and its impact on their revenues, then yeah, let them know directly. Personally I go by the old saying: "change what you can, and accept those things you cant.". Or something like that.
    Post edited by ebergerly on
  • linvanchenelinvanchene Posts: 1,386
    edited October 2018

    I provide another summary of this thread without throwing around numbers for new users who may just read about this all for the first time.

    When this thread was started in 2016 the intention was to inform DAZ Studio users about changes in Windows 10 specifically the  Windows Display Driver Model v2 and how this affects Cuda based rendering applications.

     

    What I did not expect at all is that  DAZ3D forum users would doubt information that is put in a sticky thread on the Otoy forum.

    I had been using Otoy OctaneRender since 2013. This was two years before Nvidia Iray was introduced in DAZ Studio.

    I do realize that while for me Otoy are the experts on all things related to GPU rendering for casual DAZ Studio user this may just be another company they may not even have heard about.

     

    However in 2017 the nature of this discussion shifted. The same numbers of "unavailable VRAM" that where indicated in Otoy Octanerender then also showed up in the DAZ Studio Iray log file as an unexplained difference between total and available VRAM.

    - - -

    My subjective impression:

    Nvidia is well aware about the sticky post on the Otoy forum about windows 10 VRAM limitations.

    Over the last years Nvidia and Otoy have worked together and Otoy is listed as official partner of Nvidia:

    https://www.nvidia.com/en-us/design-visualization/solutions/rendering/

    If Otoy would be spreading "wrong" information about anything related to GPU then Nvidia certainly would ask them to stop spreading that information.

    Instead the opposite has happened. Otoy staff is hosted on several videos about GPU rendering on the Nvidia youtube channel.

     

     

    Otoy Octanerender is not the competition of Nvidia. It is a business partner.

    Based on that reasoning I trust information provided by Otoy and that is the reason why I posted the information in this forum.

    - - -

    Microsoft since 2016 also has made a lot of changes to Windows. The task manager has been updated to show more detailed GPU information.

    And that is where we are right now in 2018:

    Some users rely on the information provided by the Windows 10 task manager or 3rd party tools.

    Other users consider Nvidia and Otoy as the experts on GPU Cuda use and trust the internal tools of their render engines.

    DAZ3D and Nvidia have been asked to comment on this in Request #273017.

    - - -

    Even if there is no solution to the limitations Iray users should be informed what exactly the numbers about "available VRAM" in the DAZ Studio Iray log file mean.

    Once again users spend several thousand dollars for new turing based GPU. If it is not possible to use all VRAM of consumer level GPU then customers also have a right to know.

    Some users may decide to purchase Quadro cards.

    Some may start to use software like OctaneRender that allows system RAM to be used for both textures and geometry in the upcoming version 4 release.

    Others may decide that this whole GPU rendering is not yet ready for the needs of small studios and freelancers on a limited budget.

    - - -

     

     

    Post edited by linvanchene on
  • kyoto kidkyoto kid Posts: 41,838

    ...so the W10/VRAM issue seems to primarily involve CUDA based GPUs.    I am wondering if AMD GPUs suffer the same?

  • ebergerlyebergerly Posts: 3,255
    edited October 2018

    I totally agree with linvanchene that it’s best if users are fully aware of the capabilities of their hardware, in this case GPU’s. So I tend to be rather skeptical when it comes to what people claim about tech stuff since it’s easy to get misled and confused since this stuff is so complex.

    As we recently learned in the “Iray won’t take advantage of the Turing/RTX/20xx-series architecture awesomeness”, often with these very complicated technical computer issues it’s prudent to take the attitude “Trust, yet verify, because the devil is in the details”. And I think that’s certainly the case with the “Windows 10 Hogging VRAM” issue, since there are/were many reasons for folks to want to verify claims and not just accept them blindly. Here are a few of them (in my opinion):

    • Windows, not Otoy or NVIDIA, is responsible for managing and allocating system resources including GPU VRAM. Windows decides how much VRAM a process can use (using “VidMm” and “VidSch”), and it allocates that memory to requesting processes (such as NVIDIA CUDA) as part of its primary job of "fairly" allocating system resources to all requesting processes. Therefore, Microsoft should be considered (IMO) the true expert on GPU VRAM allocation. And presumably their reporting mechanisms (such as Task Manager) should be considered the authority. 
    • Windows 10 has had 5 major updates since this issue was posted here in 2016. Therefore, it is reasonable to question whether the original VRAM availability issue (if it was valid at the time) is still valid in 2018.
    • Since software interactions between rendering software, lower level GPU interaction software (such as CUDA), and Windows can be extremely complicated, it is unclear if VRAM allocation results obtained in one rendering software are relevant to other rendering software. Therefore it is reasonable to question whether Otoy results are relevant to Iray results. For example, are they (and to what extent?) both relying on CUDA for GPU interactions, and are they both subject to whatever memory allocation rules that CUDA is subject to?   
    • The Iray log, which reports “available” VRAM, reports those numbers BEFORE an Iray scene is even loaded. In the software world, there can be a difference between what system resources are reported available at any point in time, and what’s actually available upon request at a later time. Therefore, it is reasonable to question whether initial Iray reports of available VRAM are still relevant at a later time when a scene is actually loaded into GPU VRAM. Especially since there are mechnisms in place to dynamically “page” VRAM to system RAM under certain conditions, making more GPU VRAM available. I showed an example above where a “greedy”, VRAM-hogging app had part of its VRAM allocation moved to system memory to make room for a DAZ Studio request for VRAM.  
    • It is very easy to show that the total GPU VRAM usage of all processes combined can be almost the entire installed VRAM on the card. Therefore, it is reasonable to question whether some rendering software might be able to take advantage of using multiple processes in order to access the entire VRAM, while other software may not be.
    • Presumably, Otoy and others must rely on both NVIDIA’s CUDA (as well as other NVIDIA software), and also Microsoft Windows 10 underlying, low level code to implement their renderers. Therefore, it seems reasonable to at least question whether the Otoy developers have full access to and knowledge of all aspects of the VRAM allocation issue, and whether perhaps those concerns applied only to a specific W10 version and/or specific CUDA version, a reporting error in some of the core W10/CUDA/etc. code, and so on.    

    In any case, at this point NVIDIA has said that Microsoft told them that W10 will allow CUDA to allocate up to 90% of GPU VRAM, and an individual process to allocate 90% of that, or 81% of GPU VRAM, and the two are discussing having Windows 10 relax those limits in the future. So presumably if a software app can initiate multiple processes to perform its workload it can access virtually the entire GPU VRAM. Otherwise it’s subject to those limits. And it seems clear that Windows 10 does not block gigabytes of VRAM for its own nefarious purposes of running monitors. From what I’ve seen with my 3 HD monitors it holds around 0.3 GB at most. Maybe others with huge monitors might see more, but I assume that’s the exception, and probably required to maintain 4k video frames or whatever.  

    So for me at least it’s pretty much case closed. I’ll wait to see if future Windows updates relax the limits in any way, but IMO it is what it is, and since my GPU’s work fine for what I need them to do it’s a bit of a non-issue for me. Aside from being an interesting technical exercise, that is…     

    Post edited by ebergerly on
  • linvanchenelinvanchene Posts: 1,386
    edited October 2018

     

    Thank you for summarizing your point of view as well in concentrated form.

    This should help others to get get familiar with the topic and draw their own conclusions.

     

    In any case, at this point NVIDIA has said that Microsoft told them that W10 will allow CUDA to allocate up to 90% of GPU VRAM, and an individual process to allocate 90% of that, or 81% of GPU VRAM, and the two are discussing having Windows 10 relax those limits in the future.

     

    NVIDIA has said that from their discussions with Microsoft they've determined that CUDA can allocate up to 90% of the GPU's VRAM, and an individual process within that can allocate 90% of that 90%, or 81%.

    What is the source of this information?

    Can you share a link?

    - - -

    Edited to add:

    When I have a look at the numbers I posted this all seems pretty close to the 81% your source is talking about.

     

    On Windows 10 systems 1 GB of VRAM of 6 GB cards is not available for rendering tasks

    100*1/6 = 16.6 %

    100 -16.6 = 83.33 % available

    On Windows 10 systems 1.4 GB of VRAM of 8 GB cards is not available for rendering tasks

    100*1.4 / 8 = 17.5 %

    100 - 17.5 = 82.5 % available

    On Windows 10 systems 2.0 GB of VRAM of 11 GB cards is not available for rendering tasks

    100*2 / 11 = 18.2 %

    100 - 18.2 = 81.8 % available


    log entry at startup of DAZ Studio 11 GiB total, 9.14774 GiB available

    100*9.15 / 11 = 83.1 % available

    - - -

    To me it looks like the numbers indicated in the DAZ Studio Iray log file and the Octane system information are close enough to the 81% to assume that they indicate exactly what they are labeled as:

    VRAM available for rendering.

    Post edited by linvanchene on
  • ebergerlyebergerly Posts: 3,255
    edited October 2018

    linvanchene as I posted a while back in these forums where I obtained similar numbers (around 82% for my 11 GB GTX-1080ti) using a simple CUDA function in a program I wrote. The CUDA function is called "cudaMemGetInfo()", and it returns free and total bytes on the GPU. So if Otoy and Iray are both employing CUDA they're likely using the same function. I then used another CUDA function called "cudaMalloc()" to attempt to fill that amount of memory on the GPU with data (over 9 GB), and as soon as I exceeded those 82% numbers I got an "out of memory" error. I did the same for my GTX-1070 and got approximately the same percentages. 

    And as described previously in this thread (in great detail, with graphs and software printouts), when I then started DAZ Studio with about a 2GB+ scene, while my CUDA app was filling the GPU with over 9GB of data, it successfully allocated that 2GB+ to Studio by moving some of my CUDA app's 9 GB of memory usage out to system RAM. So it filled more than the GPU's total installed 11 GB memory by moving (aka, "paging") some of the VRAM data out to make room for an newer software.

    So a single process has those limits I described, but multiple processes can actually exceed total installed VRAM by moving some to system RAM.     

    Post edited by ebergerly on
  • linvanchenelinvanchene Posts: 1,386
    edited October 2018

     

    So a single process has those limits I described, but multiple processes can actually exceed total installed VRAM.  

     

    Are Iray and Octane by default using a single process or multiple processes?

    The numbers indicated for available VRAM in both the DAZ Studio Iray log file and the Octane render "preferences / devices tab" end up being around 81 % as your source indicated for a single process.

    - - -

    - - -

    Edited several hours later because I was not able to find the source of some of the information provided in this thread:

     

    NVIDIA has said that from their discussions with Microsoft they've determined that CUDA can allocate up to 90% of the GPU's VRAM, and an individual process within that can allocate 90% of that 90%, or 81%.

    But apparently NVIDIA has requested that Microsoft change that limit, so I'll be interested to see what happens in the next Windows 10 update. 

    Does someone know where Nvidia posted all this information originally and can share a link?

     

     

    Post edited by linvanchene on
  • linvanchenelinvanchene Posts: 1,386
    edited October 2018

    Searched google in order to find a possible source for some of the information posted in this thread by other users.


    used terms


    Nvidia Microsoft Cuda allocate 90% GPU individual process 81%


    Ended up finding this thread:


    https://uk.mathworks.com/matlabcentral/answers/413584-matlab-is-able-to-utilize-only-a-part-of-actual-available-vram

    The accepted answer for MathWorks Matlab dated with 12 Sep 2018 is:


    "NVIDIA have responded to confirm that this is expected behaviour. In summary:
    WDDM2 releases 90% of available memory to CUDA.
    A single application is only allowed to allocate 90% of that 90%, i.e. 81% of total memory.
    NVIDIA are working with Microsoft to tighten this bound, and/or remove it on non-display cards."


    - - -


    From my perspective different people and companies all say the same thing just in slightly different words.

    DAZ Studio Iray log file: 83.1 % VRAM available

    the Octanerender preferences / devices information: 11 GB cards 81.8 % VRAM available

    the test results by other forum users 82% VRAM available

    The similarity in the results was not obvious before because some applications indicated available VRAM and other unavailable VRAM. Some results were indicated in GB and not percentages.

    - - -

    The piece of information that was missing in 2015 / 2016 seems to be:

    A single application is only allowed to allocate 90% of that 90%, i.e. 81% of total memory.

    - - -

    So for me at least it’s pretty much case closed. I’ll wait to see if future Windows updates relax the limits in any way

    Agreed, users can now wait and see if in future Windows updates the situation can be improved.

    Thanks to everyone who helped by providing information, sharing results and explaining the more technical details.

    - - -

    - updated first post of the thread

    - updated Request #273017

    - Request #273017 has been considered solved by DAZ3D staff based on the last provided information.

    - - -

    Post edited by linvanchene on
  • Hi all, I am not a DAZ user but deliberately register this forum and leave a comment to support you all. The silly WDDM driver isn't only hurting 3D rendering software, but also the entire GPGPU computing community. Currently, ALL tensorflow, pyTorch, Caffee and other GPU-based deep learning platforms are haunted in Windows 10 because of the lost video memory. Many well-founded network architectures suddenly stopped working when being ported to a Windows 10 platform, mostly happening in clients' machines or home-scientist personal computers. Unlike 3D rendering where options may be available, compromising quality to force start GPU based rendering,  deep learning algorithms have absolutely no workaround to tackle out-of-memory error, unless the algorithm is completely redesigned. 

    Yes, most of the academic and professional users are using Linux systems, but it isn't the case when the developed algorithm is deployed in business/daily environment, where one computer may serve multiple purposes. 

    Considering AI application is the key direction of nVidia, I stay positive that this issue will be kinda solved.

     

  • ebergerlyebergerly Posts: 3,255
    edited October 2018
    Thanks maxlawdecoy. I'm just curious why this hasn't caused a major news story in all the tech publications in recent years. Searching the web always seems to point to a few Iray users posting concerns a few years ago. And you'd think NVIDIA would be furious, but instead it seems they've been fairly silent. In any case I'm hoping the new October W10 update this week might have some positive changes. Guess I'll re-run my CUDA app later on to see if more VRAM is now available.
    Post edited by ebergerly on
  • Nephew is a tester and he said Microsoft told him and other testers that the issue wasn't considered a problem 

  • outrider42outrider42 Posts: 3,679

    A real test would be to dual boot Win 7 and see how much it uses, and create a Daz scene that pushes the VRAM to the limit. Then jump back to 10 and see if that same scene will run on GPU. That's what everybody's argument for VRAM stealing is based on, not being able to render the same scenes they could before upgrading. If you have looked around, then you have come across some posts where a design studio upgraded to 10. After that, a scene they had created and ran successfully on 7 no longer ran on 10. The group finally reinstalled 7 to make the scene render on GPU again, and were highly upset at the time they lost in that process. A customer had been waiting on that image, and what happened was the customer had requested a change after the group had made the upgrade to 10. Talk about bad timing. This was with a Titan 12GB I believe.

    Nvidia could address this with TCC. TCC is only available on Quadro, though.

  • TaozTaoz Posts: 10,233

     

    Nephew is a tester and he said Microsoft told him and other testers that the issue wasn't considered a problem 

    But that attitude is.

  • Taoz said:

     

    Nephew is a tester and he said Microsoft told him and other testers that the issue wasn't considered a problem 

    But that attitude is.

    Yep

  • This is a serious problem.

    I will have to stick with win7.

  • TheKDTheKD Posts: 2,711

    I had to slipstream usb3 and NVME SSD drivers into my install to get it to install win7 on my ryzen machine. Also had to download a program to stop microsoft from detecting I have a new machine and deny me updates for no reason. A major pain in the ass, but now that it's set up and going, well worth it. Win10 was dropping to CPU in the middle of renders on win10, never happened so far on win7. And the scenes I was dropping to CPU were simple one dressed g8 figure and a small scene, no reason for it to have dropped to CPU on that. So far so good on win7, back to being able to render overnight or while I am at work without worrying about it dropping to CPU and my system getting too hot. System runs a lot cooler under load with my new noctua cooler, but still, no reason for that crap. Win10 handles VRAM poorly all around, at least for those of us that render on GPU. Maybe it's fine for browsing pornohub and reddit, and playing some games, that's not what I built this for lol. Will be sticking with 7 until at least that is fixed.

  • Robert FreiseRobert Freise Posts: 4,572

    Don't hold your breath on a fix and keep a watch on your apps as Microsoft will remove or disable apps

  • TheKDTheKD Posts: 2,711

    Yeah, it was 3 or 4 years ago I think people noticed that vram reserved for hotplugging problem and started asking for an option to turn it off lol. I don't think they are going to listen to anything, they just care about datamining I guess.

Sign In or Register to comment.