2
$\begingroup$

Yes, I do know there are 2 other similar questions to this one that have been answered here, but I believe this might be a different problem since I've not seen it or heard about it behaving this way anywhere else.

So I followed Andrew Price's tutorial on how to make towels to test towel physics and particles for other scenes. After finishing the tutorial I did a test render, only to have the surprise of my render displaying an "Out of memory" message and not much time later crashing.

This is pretty much what happens:

  • After pressing the render button, the objects are being synchronized, the BVH is built, etc.

  • Then after roughly 4 minutes of calculating (no sample has been rendered at all), the render suddenly cancels leaving the simple message of "Out of memory" on the top tab.

  • And then after that, PC lag starts to intensify, just a little while later crashing Blender.

I had a similar issue before on an older computer (only difference is that blender crashed in seconds, the problem was I was using a 32-bit OS which did not work, quite at all, for cycles hair.)

Since the problem might I also be my computer, here are some of the details:

  • OS: Windows 7 64-bit
  • RAM: 4GB
  • GPU: NVIDIA GeForce 840M 2048MB DDR3
  • CPU: Intel Core i5-4210U 1.70 GHz 2.40 GHz

I've tried rendering this on my CPU with 128 samples, it taking 10 minutes to calculate and around 20 to render, so if I did a test render, then done some little tweaking for an actual render, then rendered it again it would take +1 hour to render just a simple towel. An architectural bathroom scene (which is what I was currently working on) would take an immense amount of time rendering with such limitations.

So what I'm asking is: What is it that causes this running out of memory? And are there any ways I can still render this hair on GPU, mantaining a reasonable rendering time?

I know I made this description waaay too long, but I want a clear enough description for a clear enough answer.

Here's the .blend file if it helps.

$\endgroup$
2
  • $\begingroup$ Rendering hair (and other particles) uses a lot of resources. Your GPU has only 2GB (even less available if it is the only GPU in the machine and the resources are shared by the display). Try making the tile size smaller, turning of the UV/Image editor while it is rendering or rendering trhough the console, with no UI. But my feeling is that you need to simplify your scene or render on CPU $\endgroup$
    – user1853
    Commented Jan 17, 2017 at 18:16
  • $\begingroup$ Thanks for the reply, I've tried all of those but it seems none of them worked: the same Out of memory cancelling message appeared. I think my GPU might just too weak to handle all of those 1 million hair particles, in that case I might simplify the render or just use texture tricks. But in that case my question would be: is there a way to render multiple layers of hair and combine them in the compositor to get the finished result? Using this method would lower the memory usage, since it's not just rendering it all off in one single layer. $\endgroup$
    – Wiirexu
    Commented Jan 17, 2017 at 18:46

3 Answers 3

3
$\begingroup$

Alright, after a little bit of testing I found out a solution:

enter image description here

Turning this off will make the render not calculate/use hair BVH, which lowers RAM memory usage which was most likely the problem here. Rendered in 15 minutes on my poor GPU, but that's at least better than CPU rendering.

$\endgroup$
2
$\begingroup$

@Wiirexu That simply means that the 2GB of VRAM you have on your GPU is not enough for the scene. If you want to render the scene using your computer's available RAM, you have to render with CPU. If you render with CPU and there is still not enough memory, your only options are to get more RAM, or use a render farm.

You do not have enough VRAM available on your GPU for rendering the scene you are trying to render. Your only other options are:

You could try reducing the amount of geometry in your scene using the decimate modifier.

You could switch to CPU rendering. This will render your scene using your available RAM, instead of VRAM. (If you render with CPU and there still isn't enough memory, you will need to add more RAM to your system.)

You could use a renderfarm service, such as SheepIt! (Free)

You could upgrade your current GPU or add another to your system.

You could ask someone to render it for you (I'd probably be willing, I've got 6GB of VRAM)

$\endgroup$
0
$\begingroup$

This might soon be possible, watch out for what is called "Out of core rendering" in Cycles:

https://twitter.com/themikepan/status/948624772736286721

and

https://developer.blender.org/rBc621832

It has been a waste of GPU power for a long time, where you might have 5 GB of VRAM on your GPU, but your scene is 5.5 GB (that is after you have done everything you can to reduce the size) and therefore you are now forced to render everything snail pace with your CPU. It will be interesting to do benchmarks on how much performance penalty this gives us, but I'm pretty sure that it will be still way faster than CPU rendering.

I wish that GPUs had upgradeable RAM, like CPUs have on motherboards on the PC industrial standard. Maybe Intel will offer this with their GPUs, as AMD and Nvidia don't seem to care and run a nice profit off forcing people having to rebuy GPUs. Planed obsolescence at its best. I have some older GPUs that would be fast enough to render, but don't have enough ram and therefore are now littering some huge electronic trash heap.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .