Skip to content

About

A blender extension to speedup EEVEE and Cycles renders by submitting multiple renders at once. Supports multi-GPU

Resources

Stars

19 stars

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

Repository files navigation

Pseudo rendering farm for Blender

A small script to leverage parallel rendering in Blender on a single machine

Note

This is not a one-size-fits-all kind of solution. It works when the render submission overhead is comparable to the cost of rendering a single frame, which is especially true for EEVEE and simpler frames. In case of Cycles, single scene or a lot of stuff to process, a regular rendering farm (like Flamenco) might be a better fit.

Installation

There are two ways to install this extension. The first option uses the built-in Blender functionality to locate and install the extensions. All you need to do is search for “Pseudo Rendering Farm” in Edit -> Preferences -> Get Extensions. This will also allow you to automatically install updates.

extension

Another way is to download the latest release from the panel on the right and install it by navigating to Edit -> Preferences -> Add-ons -> Install from Disk… (located at the top right of the window).

Usage

After the installation you'd see the following user interface in the Render plane with the main controls:

ui

If you're using the Vulkan backend, you can try an experimental multi-GPU setup. If your system has more than one GPUs and you're using a Vulkan backend, a Setup multi-GPU button will appear. When using it, a copy of your current user settings will be created in a temporary folder with a specific GPU selected. After a successful setup, the user interface would change to this, indicating the number of GPUs:

ui_multi_gpu

In case of unbalanced system (different GPUs), one device might be significantly faster than another, imagine integrated graphics paired with a powerful discrete GPU. In that case, the original approach with Overwrite checked and Placeholders unchecked is still required, so that the devices can work at their own pace. For regular renders this requirement is lifted as of version 1.1.1.

Description

To render each frame, Blender prepares the necessary data, sends it to the GPU and triggers the computations. With modern hardware and simple enough scene, the overhead of preparation might be similar or even exceeding the time it takes to produce a frame.

This plugin solves it by launching several background Blender instances in parallel. By using frame placeholders and disabling overwrite, each instance claims the frame and starts working on it independently.

The result is faster rendering due to better hardware utilization. On the left hand side you can see that the renders are separated by an amount of time equal to the render itself. At the same time, spawning multiple instances improves the situation significantly, at the expense of spending more system RAM and VRAM.

Before After
before after

There's a built-in benchmark that tests the first 50 frames of the scene to give an estimation of the number of instances to use. Bear in mind, that the first 50 frames might not be fully representative and you might need to adjust it to be either bigger or smaller.

Results

With a default cube scene, as simple as it gets, we can get a minor increase of ~20% on a lower-grade machines (Mac Mini M1) and a significant improvement of up to 2x using a machine with a powerful GPU (NVIDIA 4070 Super). Below is a comparison based on 100 rendered frames.

Device \ Instance count 1 2 3 4
Mac Mini M1 (8GB) 119 s 98 s 100.7 s 127 s
NVIDIA 4070 Super (12GB) 30.6 s 25.1 s 16.8 s 17.1 s

The same principle can be also applied for an animated series. Below are the collected numbers for an episode of Funny Legs, a 2D show made in 3D in Blender (check out the BCon 2025 talk!). Below are the measurements to render the whole episode of 810 frames.

Device \ Instance count 1 2 3 4
Mac Mini M1 (8GB) 24m41s 18m27s 21m27s 26m21s
NVIDIA 4070 Super (12GB) 6m53s 4m25s 3m15s 2m52s
NVIDIA 4090 (24GB) 4m49s 2m41s 2m16s 1m59s
Intel Arc Pro B70 (32GB) 8m48s 5m57s 4m07s 3m50s
NVIDIA 4060 (8GB) 6m14s 4m41s 11m13s 19m53s
NVIDIA 4060 (8GB) +
NVIDIA 3060 (8GB)
6m31s 3m33s 2m50s 2m16s

Adding a second GPU solves the VRAM limitation, allowing to increase the number of parallel renders and speed things up.

Copyright Information

Please don't forget that if you fork or distribute this extension, GPLv3 requires that you maintain original author attribution in the manifest and source files.

About

A blender extension to speedup EEVEE and Cycles renders by submitting multiple renders at once. Supports multi-GPU

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages