Out-of-core textures in V-Ray GPU

Introduction

As of V-Ray 6, update 2, an entirely new implementation of the out-of-core (OOC) feature was introduced, enabling V-Ray GPU to offload textures to system memory (RAM) with the purpose of lowering GPU memory (VRAM) usage with little to no impact on performance.

The feature should be used for rendering massive scenes with many high-resolution textures, for which GPU memory is insufficient. 

 

How to?

  1. Switch to V-Ray GPU
  2. Enable the "Use System Memory for Textures" option. 
Out_of_core_in_3dsMax.png
Preview of the "Use System Memory for Textures" option location in 3ds Max

When enabled, all textures that are bigger than 1 MB in size will be allocated in CPU memory and become accessible to all rendering devices. If your scene data already fits in the GPU memory, we recommended sticking to it.

Where to find the option:

 

Tests and results

Below are the results of 3 scenes, rendered with and without "Use System Memory for Textures" on an RTX 4090 for at least 5 minutes, using the Progressive Image Sampler. 

 

  • First scene

    • GPU memory usage reduced from 17 GB to 5.1 GB
    • Render time increased by 12% (from 655 seconds to 742 seconds)
Winter_Apartment.png
Preview of the first scene's output

 

  • Second scene

    • GPU memory usage reduced from 22 GB to 4.8 GB
    • Render time increased by 23% (from 550 seconds to 681 seconds)
Int_001.png
Preview of the second scene's output

 

  • Third scene

    • GPU memory usage reduced from 16 GB to 4.9 GB
    • Render time increased by 23% (from 371 seconds to 435 seconds)
004_GPU.jpg
Preview of the third scene's output

 

For setups with multiple GPUs, the performance hit could be higher. This is something we plan on improving in the future.

 

Monitoring Texture memory

  •  Windows Task Manager

    When "Use System Memory for Textures" is enabled, the texture memory will be reported under Shared GPU memory.

 

Screenshot_145.png
Preview of the Windows Task Manager's Shared GPU memory reports

 

  • V-Ray Log 

    When "Use System Memory for Textures" is enabled, the V-Ray log will report the texture memory transferred in the "OOC" line.

Screenshot_144.png

 

Notes

  • "Use System Memory for Textures" is supported in both CUDA and RTX engines, and could be used with Hybrid Rendering.
  • V-Ray GPU uses PCIE bandwidth to move texture data to system memory. PCIE 4.0/5.0 (in newer CPUs and motherboards) will show little impact on rendering performance
  • All texture modes (Resize, Compressed..etc) are greyed out when "Use System Memory for Textures" is enabled
  • The Stats tab in the VFB doesn't show information about OOC yet. This is something we plan to improve in the future.
Was this article helpful?
2 out of 2 found this helpful