Square Enix © Goodbye Kansas

Table of Contents

This page will help you configure rendering for V-Ray GPU. For help with common questions, please see the Frequently Asked Questions page.

 

Overview


Rendering with V-Ray GPU performs the raytracing calculations on the GPU devices installed in the system, rather than the CPU. Since GPUs are specifically designed for massively parallel calculations, they can speed up the rendering process by an order of magnitude.

To enable GPU rendering, select the V-Ray GPU engine as the Renderer in the VRay tab of the Maya Render Settings window. Additionally you can enable RTX acceleration for NVIDIA RTX GPUs. You can use it with both Progressive and Bucket Sampler types.

 

Supported Hardware and Drivers


V-Ray GPU renders with the NVIDIA CUDA and RTX platforms.

Below is a list of tests we have performed and the results:

  • NVIDIA – When the engine is set to V-Ray GPU (with RTX disabled), the CUDA platform is used. It is supported only in 64-bit builds of V-Ray for Maxwell, Pascal-, Turing- or Volta-based NVIDIA cards. See here if your card has the minimum required compute capability.
  • NVIDIA RTXWhen the engine is set to V-Ray GPU with RTX enabled, V-Ray GPU uses the RT Cores in NVIDIA RTX GPUs.
  • Hybrid Rendering (running CUDA on GPU and CPU): Starting with V-Ray 3.6, V-Ray GPU CUDA rendering can be performed on CPUs and NVIDIA GPUs at the same time. Using the Select Devices for V-Ray GPU Rendering you can enable your CPUs as CUDA devices and allow the CUDA code to combine your CPUs and GPUs to utilize all available resources.

V-Ray GPU supports rendering on multiple GPUs. See the sections below how to choose devices to run IPR GPU on.

 

V-Ray GPU requires compatible GPU device(s) for rendering.

When rendering, the Maya output window and the VFB Log panel provide information about your current driver version. If your driver is not compatible with V-Ray GPU, you will find a message with the recommended driver version.

The V-Ray GPU page on the Chaos website always lists the latest recommended driver.

Тo use NVLINK on supported hardware, NVLINK devices must be set to TCC mode. This is recommended for Pascal, Volta, and Turning-based Quadro models. For GeForce RTX cards, a SLI setup is sufficient. Also note that to prevent performance loss, not all data is shared between devices.

GPU rendering on macOS devices is no longer supported. The GPU options are hidden from the UI, but they can be brought back by using the following environment variable: VRAY_MAC_GPU. Enabling this environment variable is at your own risk!

Choosing Which Devices to Use for Rendering


You may not want to use all available GPU devices for rendering, especially if you have multiple GPUs and you want to leave one of them free for working on the user interface or you may want to combine your CPU and GPU together (see the Hybrid Rendering section below).

To do this, you can use the Render Device Selection in the UI or find the tool:

For Windows: vray_gpu_device_select from this location: C:\Program Files\Chaos Group\V-Ray\Maya 20xx for x64\maya_vray\bin (where 20xx is the maya version). The tool is also found in the Start menu > Select devices for GPU rendering.

For Linux: start vray_gpu_device_select from this location: /usr/ChaosGroup/V-Ray/Maya20nn-64/vray/bin (where 20nn is the maya version)

The tool controls which GPUs are involved in rendering and denoising. You can also set low thread priority of work to each of them.

Engine – Switches between CUDA, RTX and Denoising engine, so you can select which devices to be used based on the engine. If none of the devices is selected for an engine that is used, the most optimal options are used by default.

Low priority – This option is visible only if the renderer is set to CUDA or RTX. When enabled, V-Ray tries to lessen their use of GPUs working on displaying graphics to the monitor(s) in order to give them more resources to complete other processes and tasks for the OS. This is done by using a lower value for Ray bundle size for those GPUs with attached displays (Rays per pixel is still the same for all GPUs). This can affect overall performance, and the render speed might be reduced. It is recommended to utilize a separate GPU for the display, if possible.

 

After changing options, you need to restart Maya and/or any Standalone DR servers (if any are running) for the changes to take effect. If the Standalone DR server is running as a service, you may need to restart it.

 

 

For help on choosing GPU devices with MEL, see the vray gpuDeviceSelect page.

 

Balancing the GPU Load


If you have only one GPU on your system, you may find that the user interface becomes sluggish and unresponsive while IPR is rendering on the GPU. To alleviate this problem, reduce the Rays per pixel and/or the Ray bundle size parameters in the Performance section of the IPR renderer settings in the Maya Render Setup dialog. For example, you can try values like 64/1 or 32/1. This will break up the data passed to the GPU into smaller chunks so that the user interface requests can be processed faster. However note, that this will reduce the rendering speed. Turn on the statistics display to check the difference in render speed and to find the optimal settings for your system.

 

Hybrid Rendering with CPUs and the CUDA Engine


Starting in 3.60, V-Ray GPU can perform hybrid rendering with the CUDA engine utilizing both the CPU and NVIDIA GPUs. V-Ray can now execute the CUDA source on the CPU, as though the CPU was another CUDA device. To enable the hybrid rendering mode, simply enable the C++/CPU device from the list of GPU devices.

The hybrid rendering mode does not require any special drivers. Furthermore, you can use the CPU as a CUDA device even if you don't have an NVIDIA GPU and/or NVIDIA drivers installed. Meaning, this mode can be used on computers that don't even have GPUs. The hybrid render engine running on a CPU supports the same features as the regular V-Ray GPU CUDA engine.

 

Image Sampler


Starting in V-Ray 6, the V-Ray GPU Image sampler is controlled using the Samples Limit and Rays per pixel options, instead of the previous Min and Max Subdivs. This separates the Image Sampler settings of the V-Ray renderer and the V-Ray GPU renderer.

Switching from one render engine to the other will adjust the Min and Max Subdivs or the Samples limit and Rays per pixel parameters to the corresponding values, so that the noise levels remain the same.

Progressive


Samples limit – Determines the maximum number of samples that each pixel in the image receives. V-Ray performs adaptive sampling on the image, trying to put more samples into areas that have more noise. If the Samples limit is set to 0, V-Ray renders with the default value of 2500.

Noise threshold – The desired noise level in the image. If this is 0.0, the entire image is sampled uniformly until either the Samples limit is reached or the Max. Render time is reached.

Max. render time (min) – The maximum render time in minutes. When this number of minutes is reached, the renderer stops. This is the render time for the whole frame; it includes any GI prepasses. If this is 0.0, the render is not limited in time.

Ray bundle size – Useful for distributed rendering to control the size of the chunk of work that is handed to each machine. When using distributed rendering, higher values may help to utilize CPUs on the render servers better.

Rays per pixel – The number of rays that are traced for each pixel during one image pass. The greater the value, the smoother the picture from the very beginning of the rendering with GI, but interactivity may be significantly diminished. Increasing this value also reduces amount of data transferred from the render servers back to client machine.

 

 

 

 

Bucket


Samples limit – Determines the maximum number of samples that each pixel in the image receives. V-Ray performs adaptive sampling on the image, trying to put more samples into areas that have more noise. If the Samples limit is set to 0, V-Ray renders with the default value of 2500.

Threshold – The noise threshold that is used to determine if a pixel needs more samples.

Rays per pixel – Controls the minimum number of rays traced per pixel.

 

 

References