A few basic questions re GPU rendering
I´m not exactly a newbie anymore but I´m new to GPU rendering. I have some basic questions about it.
- As I understand it, it´s not possible to tell in advance how much VRAM a scene will use, right?
But can I tell after a scene has finished rendering, or perhaps while it´s rendering? How?
- Where can I see whether a render is/was done in CPU or GPU? Presumably I will notice because the rendering speed will be drastically different... but is there any other ways to tell?
- I understand geometry and textures will use VRAM. What are other major factors? Are lights and emissives a factor? Is the size of the rendered image a factor? What about render settings like Quality and Max Samples?
Thanks for your time... I´ll probably have more questions...
Comments
- There is no accurate way to determine how much VRAM will be used, but when you are installing products, the size of the installation file gives you some clue about how heavy they will be.
Sometimes even the computer tells you if the scene is heavy.
- The log will tell you if the render was done on CPU or GPU and there are also figures for memory used/reserved, put a shortcut somewhere where you can access it quick and you can also check it while the render is in progress.
GPU-Z can also tell you a lot of usefull information on what's happening
- Geometry is often blamed, but if you don't go crazy with subd, it is still way smaller factor than textures, I have also noticed that if a scene has a lot of emissive meshlights, like a city scene with windows lit with a hundred+ meshlights, the render will drop to CPU
Thanks! How do I access the log?
Help->Troubleshooting->View Log
"C:\Users\[Your user name]\AppData\Roaming\DAZ 3D\Studio4\log.txt"
Ok, cool, thanks!
If I try to render a scene that is too large for my card, will I know right away? Or will it GPU render for a while and switch to CPU sometime during the process?
If a scene is rendering on CPU you can tell. Your whole computer will be super sluggish because iray is maxing out CPU for itself. Loading your textures into the GPU is the first step, so if they exceed the card's capacity then it goes immediately to CPU. In advanced render settings tab you can set it to not fallback to CPU at all, and if your scene won't fit then it just tells you that and doesn't render at all.
Cool, I might do that.
Next question: If a scene goes CPU, is there a way for me to tell how much too large my scene was? Basically, whether the scene was just a little bit too big, or waaaay too big? So I can make a guess if I can tweak the scene to fit my card, or whether I should give up on this particular idea all together.
It tells you in the log that it failed to reserve XXX amount of memory out of YYY amount of memory, YYY being what was available. The amount is reported in Mibs (1k is 1000 instead of 1024) and the decimal point or the number of characters after the decimal point causes some confusion sometimes.