Out of Core for Cycles

Would it be possible to have out of core in cycles, similar to what Octane and Redshift has, in the future?
Out of core lets people (Who are using GPU for rendering) load their texture onto their RAM along with the VRAM which allows individuals with GPUS with low amounts of VRAM (2-4GB) create larger scenes and with moderate amount of VRAM (6-8) create scenes which previously required 12-16 gigs of VRAM (requiring beefy GPUS). This feature has been there is engines like Redshift and Octane for a long time, this allows artists who don’t have beefy GPUS and want to enjoy the speed of GPU rendering, create large scenes.

1 Like

Cycles can do out of core rendering if you are using Nvidia GPUs (works both for CUDA and Optix)

Source:
https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html

3 Likes

Cycles out of core for textures could be a lot more efficient if it was tile-based instead of the whole image, no? Currently it has dump textures in their entirety, rather than just the last used region.

With that said, OP, out of core can have a pretty significant speed penalty. “ allows artists who don’t have beefy GPUS and want to enjoy the speed of GPU rendering, create large scenes.” is what the marketing copy says, but often the reality doesn’t quite match up. If you’ve got a 9GB scene on an 8GB card it might, but if you’re having go across the PCIe bus and through the CPU on every other texture sample, the performance loss can be so bad you might as well just use CPU rendering.

Does cycles really have out of core?
I usually got out of gpu memory warning.
Even I’m using rtx3080.

Try this:

  • Render with CPU only, does it work ?
    • If it doesn’t then your scene is too big to fit even in your system RAM (try optimizing it or split it into multiple pass (background, foreground, etc…, then merge later in the compositor).
    • If it does, then:
      • switch to GPU only with CUDA
        • If it works, then try your luck with Optix.
        • If it doesn’t, try CUDA + CPU.
          • If it works, then try your luck with Optix + CPU
          • If it doesn’t, Go buy a 3090…

Why all these conditions ? simply because even though it is supported, it’s “automatic” behavior makes it difficult to debug where is the problem as you only get a generic message that doesn’t help that much.

AFAIK if you are on windows Out Of Core capabilities for NVIDIA cards is limited, so you may be hitting that problem.

Please elaborate? What are these limits; i.e how much system RAM can a GPU access when running Blender on windows? Are things better on Linux?

@Ydars is not about how much ram, it’s about what type of Out Of Core can be done on Windows, and yes on Linux things are better.

I’m trying to find the nvidia documentation piece where it stated this limitations for windows, as soon as I have it I’ll put here the link, this problem arised in the LuxCore forums and there was where I learned about this limitation and where the nvidia documentation link is, but I’m not finding it right now :slight_smile:

Not sure if LuxCore and Cycles are using the same methods. CUDA at some point introduced their automatic paging system which does differ between Linux and Windows, and in my experience performed poorly. The Cycles approach is more direct and lower level, it explicitly allocates some data structures in VRAM and others in pinned system RAM.

1 Like

I think LuxCore uses the Cuda/Optix integrated method, so based on what you say, they probably are not the same, hence may not be any difference between Windows/Linux in Cycles :slight_smile: