Indigo Manual > Rendering with Indigo

GPU Rendering Guide

GPU drivers

The first and most important point is: you must update your GPU drivers.

GPU compute depends very strongly on the quality of GPU drivers, and the various GPU manufacturers have been doing a great job of updating their drivers to be faster and more robust.

NVIDIA driver downloads: http://www.nvidia.com/drivers
AMD driver downloads: http://support.amd.com/en-us/download
Intel driver downloads: https://downloadcenter.intel.com/

Recommended GPU specifications

NVIDIA

GTX 660 Ti or better
Quadro K4000 or better

AMD

Radeon HD 7770 or better
FirePro W5000 or better

Older graphics cards might work with OpenCL rendering, but may cause problems and are unlikely to provide any significant performance gain compared to Indigo's highly optimised CPU rendering.

Memory limitations

One of the major limitations for GPU-based rendering is the amount of onboard memory available, which is typically 2-4 GB for desktop GPUs, while CPUs can easily have 32 GB. Because of this, you might run out of memory when trying to render scenes with lots of geometry and high resolution textures.

The Max Individual Allocation reported by Indigo is the largest amount of memory that can be allocated at once with OpenCL, e.g. for textures. Indigo performs multiple allocations for every scene. The practical limitation at this point is that the total texture size is limited to 25% of total GPU memory on NVIDIA, and about 65% of total GPU memory on AMD.

Using the computer while rendering

A well-known side effect of using your primary GPUs (ones which are connected to a display) while rendering is that your operating system can lag quite substantially. The best way around this is to have a GPU dedicated for display (usually a small inexpensive card, or perhaps the integrated GPU of some CPUs), while the others are dedicated for rendering. This also helps to reduce the memory overhead, which can be important in GPUs with <= 2 GB of memory running high resolution desktop and lots of web browser tabs etc.

Kernel compilation

Indigo uses a combination of OpenCL and our own programming language, Winter, for the rendering core. This means that when you start rendering a scene, the GPU drivers must compile the OpenCL code, and this process can take some time, depending on the complexity of the scene.

When using multiple GPUs, the kernel builds for each GPU are done in parallel to make better use of the CPU cores, however most GPU drivers do not do multi-core compiling themselves, so future driver updates could improve this without any changes in Indigo.

We are working on making kernel builds faster and less frequent.