CPU vs GPU

Fairly new to Daz so apologies in advance if this is a no brainer.

I was following the exercise in "Digital Women II" which is based on 4.8 covering iRay usage, but I figured was probably good for 4.10. The author advises checking both CPU and GPU options to allow the CPU to help out. I did so and the render took two hours with the laptop out of action for the period, task manager showed the CPU was running almost constant at 100% with the GPU barely stirring. I have a GEFORCE GTX1050 TI in an MSI GV72 7RE

I ran the same render with the CPU unchecked and it took 1hr 45 mins with the laptop fully functional for other tasks, task manager showed about 30% usage by DAZ but puzzlingly still showed nothing above 0.1% for the GPU, not sure I believe the GPU report but the difference in performance during render time was huge

Would be interested in any similar issues or insights as I am about to build a custom render server to hand these tasks off to and need to figure the best hardware config within my budget.

Comments

  • davegvdavegv Posts: 164

    Hi, I have a MSI GE72 VR Apache Pro laptop with the GTX1060 (  I LOVE this Laptop ) and Although I don't do rendering on it ( I have a desktop rendering system ) 

    I'd open the NVidia Control panel and ensure you have the "preferred graphics processor"  checked with your GTX1050 ( Mine simply says "use High Performance NVidia Processor"

    and not the integrated Graphics. You can also use the "New" task manager option and monitor the graphics performence directly. Your NVidia should use 100% for IRay ( my desktop GTX1080 Does) while rendering - and I never check use cpu or use both, as it is usaully alot faster with just the card.

  • frank0314frank0314 Posts: 13,385
    edited July 2018

    2 hours for a render isn't uncommon in iray or 3DL. Our promo's usually take anywhere from 8-24 hours per promo. That is with only Iray selected and then with Iray and 3DL. We've tested both

    Post edited by frank0314 on
  • JD_MortalJD_Mortal Posts: 758
    edited July 2018

    It could have been one of two things... (In my experience with laptops and PC's.)

    1: Selecting both resulted in just a CPU fallback, since the GPU is a mobile variant, tied closely to the CPU. With the CPU using all the RAM, it left none to allocate for the video and no CPU processes to safely talk to the video-card. (Talk faster than a "time-out" response. Logs would/should indicate that the GPU failed, somewhere along the way, but not if they are just stalled, waiting for a reply from the CPU.)

    2: Just a quirk... Sometimes the CPU is so bogged-down, for some reason, that it just slows down the whole process. Laptops use thermal throttling. Even though it says 100%, that is only half the "total speed"... It surely dropped clock-cycles, running at half CPU-speed or as low as 5% cpu-speed, which is still 100% of whatever speed it throttles-down to. Thus, extending your times.

    I would suggest cleaning-out your CPU and GPU fan ports, then try it again. If it runs a little faster, then you are good. Otherwise, just drop the CPU, why kill your precious CPU when your GPU is doing 10x more with 1/4 the effort. You are killing your CPU and battery, for no reason. You would literally only shave about 1-5% off your time. (Also note, render times are not actually absolute. You can render 20 times, with the same setups and finish at 20 different times. With losses of minutes, in some cases, across values.)

    If this was a memory allocation issue, it is surely due to windows 10's new video memory manager that eats-up memory that Daz/IRAY can't use. Daz/IRAY does not "go through windows" to allocate memory, it talks directly to the cards, behind windows back. Thus, it can not use any memory that "windows wants for itself", including what you are drawing on the screen, virus scanners, and other running programs that are open {with a window/screen}, or running in the background.

    Post edited by JD_Mortal on
  • ebergerlyebergerly Posts: 3,255
    edited July 2018
    JD_Mortal said:

    If this was a memory allocation issue, it is surely due to windows 10's new video memory manager that eats-up memory that Daz/IRAY can't use. Daz/IRAY does not "go through windows" to allocate memory, it talks directly to the cards, behind windows back. Thus, it can not use any memory that "windows wants for itself", including what you are drawing on the screen, virus scanners, and other running programs that are open {with a window/screen}, or running in the background.

    I would appreciate if you could provide some trusted references to support this belief. Because if you believe Steve Pronovost, the Microsoft lead engineer responsible for the GPU scheduler and memory manager, he says something quite the opposite: 

    In Windows, the GPU is exposed through the Windows Display Driver Model (WDDM). At the heart of WDDM is the Graphics Kernel, which is responsible for abstracting, managing, and sharing the GPU among all running processes (each application has one or more processes). The Graphics Kernel includes a GPU scheduler (VidSch) as well as a video memory manager (VidMm). VidSch is responsible for scheduling the various engines of the GPU to processes wanting to use them and to arbitrate and prioritize access among them. VidMm is responsible for managing all memory used by the GPU, including both VRAM (the memory on your graphics card) as well as pages of main DRAM (system memory) directly accessed by the GPU. An instance of VidMm and VidSch is instantiated for each GPU in your system.

    The data in the Task Manager is gathered directly from VidSch and VidMm. As such, performance data for the GPU is available no matter what API is being used, whether it be Microsoft DirectX API, OpenGL, OpenCL, Vulkan or even proprietary API such as AMD's Mantle or Nvidia's CUDA.  Further, because VidMm and VidSch are the actual agents making decisions about using GPU resources, the data in the Task Manager will be more accurate than many other utilities, which often do their best to make intelligent guesses since they do not have access to the actual data.

    I'm not saying that Iray doesn't somehow go "behind Windows' back", but I'd like to know the facts from some trusted references. And an explanation regarding why, if it DOES go behind Windows' back, it doesn't just grab as much VRAM as it wants, and make this whole "grabbing VRAM" issue go away (if it really is an issue). 

    And I continue to question the whole "Windows grabs huge chunks of GPU VRAM" belief. In my testing, using two computers and 3 GPU's, I've found that Windows seems to use only 10-15% of my GPUs' VRAM, or a constant 1GB. Nowhere near the 2-3GB that some claim it grabs. And 10-15% doesn't seem out of line when you consider that Windows sometimes uses at least that percentage of system RAM, making it unavailable. I have a 4GB laptop that has only 3.5GB available. That's 12.5% unavailable. And nobody seems to get too concerned about that.  

    And those GPU VRAM measurements are based upon realtime, actual data from Task Manager, which, as explained above, has access to actual data, rather than "intelligent guesses" available to many utilities. 

    Post edited by ebergerly on
  • ebergerlyebergerly Posts: 3,255
    edited July 2018

    BTW, regarding the OP's problem...

    I'd tend to first figure out what the problem is before jumping to conclusions and trying different solutions. And I'm not sure what the problem is.

    Sounds like with CPU and GTX 1050ti selected to share the rendering, your render took 2 hours, but you think the 1050ti was "barely stirring". How do you know the 1050ti wasn't "stirring"? If you used Task Manager, make sure you selected the correct GPU compute engine or else you won't see its actual usage. Iray has a choice from a number of "compute engines" (groups of memory cores on the GPU) that it can assign the render calculations, so if you don't select the correct one you won't see the real numbers. I've found that Studio/Iray tends to use the "compute_0" engine, so just select that from the dropdown in Task Manager's GPU data. Don't just assume it's using the "3D" engine. 

    I'm guessing the 1050ti was rendering flat out, as was the CPU when both were selected. BTW, as others have mentioned, I don't recommend EVER using the CPU for renders because, as you found out, it locks up your computer and ultimately doesn't help much. I have an 8 core/16 CPU processor and it barely makes a dent in my render times with my 1080ti or 1070. And it makes the computer unsable at the same time. 

    And as you found out, in your case it actually took longer with the CPU. Not sure exactly why, but IMO it doesn't matter. Maybe it's tough to schedule/coordinate the render tasks between the CPU and GPU, as well as manage memory, etc. So I'm guessing your system is working fine, just don't use the CPU and you'll be much happier.

    Oh, and I also disagree with the belief that you might be "killing" your CPU or GPU during rendering. It's a very popular belief, but as I've posted previously both NVIDIA and AMD, the folks who design and build the GPU hardware, contend that as long as you operate them at temps below their maximum (around 105C), they will operate reliably for the life of the machine (something like 7 years). And they have built in protection whose sole purpose is to prevent them from killing themselves if users operate them outside their design range. I'd be glad to re-post those references if anyone is interested.  

    Post edited by ebergerly on
  • I don't think the suggestion is that Irayu is somehow going behind Window sback, rather that it may be that the value reproted by Task Manager is more geenral than the values reported by tools like GPU-Z and so may be confused by something that Iray is making low use of (e.g. the actual interface for data transfer) while it is rendering.

  • ebergerlyebergerly Posts: 3,255
    edited July 2018

    I don't think the suggestion is that Irayu is somehow going behind Window sback,

    I was just responding to JD_Mortal when he said "Daz/IRAY does not "go through windows" to allocate memory, it talks directly to the cards, behind windows back." So, yeah, that was the suggestion. 

    rather that it may be that the value reproted by Task Manager is more geenral than the values reported by tools like GPU-Z and so may be confused by something that Iray is making low use of (e.g. the actual interface for data transfer) while it is rendering.

    Not sure what you mean by "Task Manager is more general than the values reported by tools like GPU-Z", when Microsoft says "the data in the Task Manager will be more accurate than many other utilities, which often do their best to make intelligent guesses since they do not have access to the actual data." 

    It just seems like Task Manager data, (which is updated in real-time and, according to Microsoft, "accurate" since presumably the Windows 10 GPU scheduler has the accurate data), would be far more believeable than, say, a single statement from an Iray log that uses the word "available" before you even do a render. 

    I sure wish there was a definitive explanation from, say, NVIDIA that verifies that this memory hogging is a real issue, and why, rather than a lot of suppositions. 

    Post edited by ebergerly on
  • plarffplarff Posts: 256

    Wait till you start making animations.... 12-20hrs easily

  • ebergerly said:
     

    rather that it may be that the value reproted by Task Manager is more geenral than the values reported by tools like GPU-Z and so may be confused by something that Iray is making low use of (e.g. the actual interface for data transfer) while it is rendering.

    Not sure what you mean by "Task Manager is more general than the values reported by tools like GPU-Z", when Microsoft says "the data in the Task Manager will be more accurate than many other utilities, which often do their best to make intelligent guesses since they do not have access to the actual data." 

    It just seems like Task Manager data, (which is updated in real-time and, according to Microsoft, "accurate" since presumably the Windows 10 GPU scheduler has the accurate data), would be far more believeable than, say, a single statement from an Iray log that uses the word "available" before you even do a render. 

    I sure wish there was a definitive explanation from, say, NVIDIA that verifies that this memory hogging is a real issue, and why, rather than a lot of suppositions. 

    I meant that task Manager is reporting a single number, as opposed to GPU-Z breaking it down into lots of separate reports on different aspects, so presumably it is some kind of compcosite number which may not be a clear indication of use-level for something like Iray where the demands are focussed on some aspects of the GPU more than others.

  • ebergerlyebergerly Posts: 3,255
    edited July 2018
    ebergerly said:
    ebergerly said:
     

    rather that it may be that the value reproted by Task Manager is more geenral than the values reported by tools like GPU-Z and so may be confused by something that Iray is making low use of (e.g. the actual interface for data transfer) while it is rendering.

    Not sure what you mean by "Task Manager is more general than the values reported by tools like GPU-Z", when Microsoft says "the data in the Task Manager will be more accurate than many other utilities, which often do their best to make intelligent guesses since they do not have access to the actual data." 

    It just seems like Task Manager data, (which is updated in real-time and, according to Microsoft, "accurate" since presumably the Windows 10 GPU scheduler has the accurate data), would be far more believeable than, say, a single statement from an Iray log that uses the word "available" before you even do a render. 

    I sure wish there was a definitive explanation from, say, NVIDIA that verifies that this memory hogging is a real issue, and why, rather than a lot of suppositions. 

    I meant that task Manager is reporting a single number, as opposed to GPU-Z breaking it down into lots of separate reports on different aspects, so presumably it is some kind of compcosite number which may not be a clear indication of use-level for something like Iray where the demands are focussed on some aspects of the GPU more than others.

    Okay, but I'm not sure what exactly you're referring to. Task Manager reports like 12 different compute engines, plus dedicated and shared memory. What specifically is missing in that data ? I'm not trying to be difficult, just trying to get past the suppositions and hunches to the actual facts.

    The Task Manager GPU info, under "Compute_0" seems to match the GPU utilization ("load") data in GPU-Z. As does the  "Dedicated GPU Memory" data. So at least in GPU-Z ver 2.9.0 they both (Task Manager and GPU-Z) seem to agree on the important stuff. 

    But it seems like some don't want to believe Task Manager's GPU data for some reason, and I'm not sure why. Microsoft says it's probably the most accurate. And they should know.  

    Mod Edit :- To sort out the quote

    Post edited by Chohole on
  • I'm not sure where people are looking - a lot seem to be going from the default Processes list which seems to have limited options (and was what I was talking about)

  • jmtbankjmtbank Posts: 164

    I've never seen task manager show above 15% usage.

    GPUZ has never let me down.  And the graphics card fan doesnt lie either.

Sign In or Register to comment.