DAZ3D 4.16.0.3 refusing to using GPU for renders. 100% CPU
NorrinRadd22_5694f0872b
Posts: 41
I updated to 4.16 from 4.10 recently, and noticed that my renders were now usings CPU exclusively without a single hit on the GPU. In the Render Settings > Advanced tab I have CUDA 0 -NVIDA GeGorce GTX 1080 (EDDM - Display) selected for both photoreal and interactive mode, but still I am getting 0% GPU usage on the renders.
This was not the case in the previous version of DAZ I was using. Is there an obvious reason I am overlooking?
Windows 10 64bit
1080 graphics
64gb of Ram
Comments
For some reason the CPU is checked as well as the GPU by default, see if the render advanced settings has CPU checked... I never have them both on, by my own default!
What does your log say (Help->Troubleshooting->View Log File)
Do not copy the log into the message area, but attach it to your post with "Attach a file" above "Post Comment" button
Hi Takezo!
By default, only my GPU was checked for both. That is the way it was in my previous version of DAZ3D as well, so perhaps it ported over the settings. I notice the "Allow CPU Fallback option is new in this version. If I disable this, the render will just finish immediately and be blank.
I have just recently updated the graphics card driver, so I am hoping that isn't the cause. Other than that, the only thing that has changed was that I updated DAZ. It runs a lot smoother when creating a scene, so I would hate to have to revert. But the render not using my Nvidia Graphics card is a strange thing indeed.
Hi PerttiA,
Here's the log. Hopefully you can make more heads or tails of it.
I suppose I should also post my render settings. I basically want this thing to render for a long time. 24 hours or more if needed. I am not sure if my settings are causing the problem in this version of DAZ?
You are running way out of VRAM due to the textures and their size, there's 540 textures that are 4000x4000px or over up to 8192x8192px, if they were all 24bit, they would require 27GB's of memory (RAM). Iray does do compression by itself, but the log talks about 2783 textures (Some 910 recorded in the log), so an 8GB card with about 5GB's of VRAM available for rendering is not going to cut it.
Ah, good to know. So, no matter what my GPU wont touch this render for any reason? Not even in some sort of cyclical aspect? I don't really know how any of this works in the end, but I didn't anticipate this.
Do other rendering suites have this same limitation of not being able to render with the GPU if the total texture size exceeds the GPU capacity, or is a DAZ3D exclusive issue? I am kind of wondering if what I am doing is unusual, or non efficient, or if other people do the same.
Do you have any suggestions, or is it just something I need to let run over night and take my computer to the redline.
The best thing is to get a GPU that exceeds the 8Gb VRAM limit, I spent almost a year saving up for my RTX 3090 as I was tired of my GPU limiting my scenes as I too upgraded from a GTX 1080!
BTW, If you're a US citizen you can get yours at Best Buy as it's the solitary place that sells Nvidia GPU FEs at MSRP, just go to hotstock.io to sign up to their site/app, so you can get alerts as to when they drop, and they've been dropping at least 3 times per month!
If you're not American, then I would limit your texture sizes and bump your subdivision down to one if it isn't there already... and you can use compositing techniques as well, as in render the figure separate from the buildings/landscapes from the scene and whatnot...
With your rendering settings (rendering quality) you are definitely looking for a render that takes days or weeks and then some to render.
If you want that time to be reduced by factor of 10 to 20+, the only thing there is to do is to seriously reduce the amount of load the textures create, the memory load from geometry was surprisingly low in comparison.
Is it possible for DAZ to export a scene that can be loaded on someone else's computer for rendering? A friend of mine offered to render my scene for me, but it's such a mix of props from many sources, inluding my own, that I would really not be able to find everything and send it over separately. Like, and export all assets used with the scene, or something?
I am okay with a 24+ hour render since I don't need to do it that often as I am only making backgrounds for my Twitch channel (shameless plug:https://www.twitch.tv/norrinradd22). I just wanted to know if what I was doing had a better way. If I have bumped up against my graphics card's limit, I can live with that. Not a US Citizen, so I think unless I want to overturn and loot a truck, I'll be stuck with long renders. It's my fault, I can't stop adding props.:(
Thanks a lot for the info, everyone!
I tried an experiment - I rendered a scene using GPU+CPU and GPU only. The former took 12:00min, while the latter took 11:30 min. I do not consider the difference to be significant. More interesting is what Task Manager shows - see attached for GPU/CPU loads.
I would opt for GPU+CPU, as it would probably cover a greater range of rendering situations.
Can you stop a render, change the settings, then start it again and get the effects of CPU and GPU? Or would I need to start the render over? 6 hours in isn't the end of the world, but man alive I would like to get this thing rendered today! :)
If your scene doesn't fit the VRAM on the GPU, the GPU will not participate at all. If the scene does fit the VRAM on the GPU, adding CPU to the equation, based on tests made (by forum members) helps very little or may even slow down the rendering because CPU is so much slower than the GPU.
Well, dang! Haha.
Is this with the latest IRay So what happens when your VRAM gets filled and only GPU Rendering is checked? Does IRay tell you to go FO?
If you have disabled CPU fallback the rendering stops, otherwise it will continue rendering on the CPU only
Can confirm. If you turn off CPU Fallback, you will just get a blank render immediately. I am curious what happened in older versions of DAZ though. And also, is there no way to segment your render so there is not too many textures at once? Kind of like how 3Delight used to? Or is that not possible with Ray Tracing. Also, I have no idea what I am talking about, technically. So I am just curious how to avoid this pitfall in the future.
I use Scene Optimizer https://www.daz3d.com/scene-optimizer when my scenes get to big for my GPU. It can save you a lot of memory.
If you use the eye-icon in scene-tab to hide things that are not visible in camera, the textures and geometry of those items are not taken into account when sending the scene to the GPU for rendering.
You can reduce the texture size (pixel size) if the textures are unnecessarily large, project the item into real life and think how many pixels is it per tenth of an inch or millimeter and ask yourself do you need such precision in your render.
The filesize of the textures doesn't matter because all the image files are uncompressed when read into the program and the amount of memory they reserve is dependent of the pixel size and color depth of the image.
Some items are just badly designed, the UV mapping may have been done in such a way that the textures may use almost a gigabyte of memory, when only 20 megabytes would be needed for exactly the same level of detail.
I agree!
Okay, this is getting a little more strange. No matter what scene I feed DAZ, it doesn't seem to want to use my graphics card at all. It's all CPU. Any chance any of you have any other ideas?
How can an Nvidia graphics card not be able to render scenes with Iray? Especially when it used to on previous versions of DAZ. This doesn't seem like a particularly hard render, but my graphics card isn't even making a blip in task manager.
Iray (Statistics) : Geometry memory consumption: 32.713 MiB (device 0), 0.000 B (host)
Iray (Statistics) : Texture memory consumption: 2.403 GiB for 125 bitmaps (device 0)
Iray (Statistics) : Lights memory consumption: 13.810 MiB (device 0)
Iray (Statistics) : Material measurement memory consumption: 0.000 B (GPU)
Iray (Statistics) : Materials memory consumption: 798.676 KiB (GPU)
It may very well be that even that amount of textures is too much for a 8GB GTX running on W10.
Previously you were using DS 4.10, but since then Nvidia has changed how Iray rendering works, now the RTX functions are emulated in software on GTX cards, which decreases the amount of VRAM available for rendering on GTX cards. Nobody with an GTX card has given us any figures on how much VRAM is used for the emulation, so we don't know.
You just have to keep hiding stuff (with the eye-icon) until DS starts rendering with the GPU.
Wow. That's actually a very big change. I wonder if they will provide a toggle at some point to allow you to do both.
When I am trying to render a figure, I can only get at max 0.5 out of my GPU, where as the CPU is up at 15%. I am just trying to figure out what "normal" is, now. With my current graphics card, is it worth just going back to 4.10?
Try a different Nvidia driver (a slightly older version). You're using 497.29, at the moment the latest driver. But latest drivers do not always have to be the best drivers, especially not for older GPUs like your 1080.
Daz Studio 4.16.0.3 (like Studio 4.15.0.x) requires at least driver version 451.48, so you should try it with a driver beginning from there. This may already solve your problem.
I have posted this a few times, but here it is again. In your case, using a GTX card on Windows 10, means you are not able to render as large scenes that I am.
Attached is a test I made some time ago to see how much RAM and VRAM was used while rendering in IRAY
Case a) just one lightweight G8 figure with lightweight clothing and hair
Case b) four similar G8 characters with architecture
Case c and d) started increasing SubD on the characters to see at which point the rendering would drop to CPU
"RAM/GB" and "VRAM/MB" taken from GPU-Z, "DS Log/GiB" taken from DS Log, no other programs were running but DS and GPU-Z
Using RTX 2070 Super (8GB), i7-5820K and 64GB's of RAM on W7 Ultimate
Note; Case c) was already using 38GB's of RAM, even though the rendering was done on the GPU, Case d) when rendering on CPU the RAM usage went almost over my 64GB's
Edit: The "DS Log/GiB" is the sum of Geometry usage, Texture usage and Working Space - After Geometry and Textures, there should still be at least a Gigabyte of VRAM available for the Working space => In my case, Geometry + Textures should not exceed 4.7GiB
I'll experiment with an older driver for sure. I'll start with the one you recommend.
PerttiA, Thanks for the more detailed breakdown! I am impressed by the work you put in to figuring this out on your own. In your opinion, what level of graphics card would I be looking at to render carefree?
When you have started breaking things apart at the age of 4 as you wanted to know how your grandmom's alarm clock functioned, digging into how things work is something you don't even think about, you do it subconciously
The RTX 3060 (12GB) has the best bang for the buck at the moment, with the way new products are using the resources, I'm predicting that even the 8GB RTX cards will be struggling later this year.
I hear the availability of RTX cards is poor in the states, but here in EU they have been available almost all the time since the last May.
The software emulation of RTX functions that is necessary for GTX cards, apparently reserves about a gigabyte of VRAM => There would be about max. 3,5GiB's of VRAM available for textures+geometry, while Iray rendering with an 8GB GTX card running on W10.
I just noticed that the "Render Line TessalationSides" setting has a significant effect on GPU/CPU Utilization when you use D-Force Strand-based Hair. Setting this to a value like 2 will cause the GPU Utilization to increase. Setting it to a higher value like 3 (more demanding) will cause the GPU Utilization to decrease significantly, while causing the CPU Utilization to increase. I suspect this is because the NVidia hardware cannot render D-Force Hair. This must be handled solely by the CPU.
Are you using D-Force Strand-based Hair in your scenes?
No, though the hair does have to be converted to strips (as far as I know - Iray is getting/has got the ability to handle curves but I don't think the current version of DS is doing that). Of course more tesselation will require more CPU activity to prepare for Iray, but it may also add enough data to tip the render to CPU fallback instead of usign the GPU at all.