1
$\begingroup$

I watched a setting video on YouTube and they suggested that if you have a good GPU, select the GPU and deselect the CPU? I always thought that if you select both it would render faster, is it correct to only have the GPU selected?

$\endgroup$
4
  • $\begingroup$ CPU is very bad for large tiles and GPU is good at it. If you select both you have to use small tiles, so your GPU won't be effective. So in some cases the fastest way if you use only the GPU with large tiles. $\endgroup$
    – FFeller
    Jul 14 at 20:03
  • 1
    $\begingroup$ @FFeller this was the case only up to a few years ago, an update was made somewhere in 2.8x or 2.9x that allowed GPU to perform well even on small tiles. Already back then, the claim that CPU = small tiles and GPU = big tiles wasn't as true anymore. CyclesX doesn't use tiles that way anymore, so since 3.0 not only you don't need to change your tile size depending on your hardware, you actually most likely have better results rendering as big as a frame in your memory can fit, meaning no tiling at all in many cases, even with CPU rendering. $\endgroup$
    – L0Lock
    Jul 14 at 20:26
  • $\begingroup$ @L0Lock I'm using Blender 3.6 and I noticed that my GTX Titan from 2015 renders slower when I used smaller tiles like 256 compared to rendering 1 whole tile for the whole 1920x1080 frame. i have 32GB ram $\endgroup$ Jul 16 at 1:50
  • $\begingroup$ Yes, that's the kind of result you should have with CyclesX introduced since version 3.0 :) $\endgroup$
    – L0Lock
    Jul 16 at 2:58

1 Answer 1

3
$\begingroup$

It depends on your own hardware and the scene you render. You need to test it out and know your stuff.

In my personal use case, most of the time I do get slightly faster renders if I use both my GPU and CPU, especially if I use all except one core of my CPU.
But I know people who get absolutely worse performance, some who divide their render time by two, and some who don't see the difference.

So, again, do tests on your side, try different scenes, with ant without CPU, and with different amounts of cores (all, half and "all except one").

If you do get better performances, take into account the downsides: extra power usage and your pc is pretty much a very hot brick until it is done rendering. Not always worth it, IMHO. And especially on laptops : overheating can become a genuine issue there, so be careful.


As for the claim that GPU need big tiles and CPU small tiles: this is years outdated pratice.

Firstly because GPUs performance on small tiles got improved (at least on CUDA) back in v2.80 (2019):

CUDA renders no longer need to use large tiles. In many cases rendering with a tile size of for example 32x32 will actually be faster now. When using denoising it may still be somewhat faster to user large tiles, but this comes with a high memory usage cost. (6da6f8d)

Reference/Release Notes/2.80/Cycles - Blender Developer Wiki

It was rarely exactly as fast as the faster time you could get with big tiles, but already some people could get better times if hybrid rendering.

Then GPU were able to steal unfinished CPU tiles in v2.92 (2021):

GPU devices can now take over tiles that are currently being rendered by CPU threads to improve hybrid rendering performance. (517ff40b12) Reference/Release Notes/2.92/Cycles - Blender Developer Wiki

This avoided the issues where your GPU would finis almost all your frame but keep waiting for your CPU tiles to finish. Which was a major issue for people with CPU significantly slower than their GPUs on small tiles.

Then for Blender 3.0 (2022), the new CyclesX doesn't work the same anymore and tile management is mostly just a matter of memory management rather than performance:

The render is now progressively refined by default, giving a quicker preview of full render. However when rendering high resolution images with many render passes, memory usage can be significant. For this reason high resolution renders are automatically split into large tiles, and each tile is cached to disk as it is completed.

Previously tweaking tile size was important for maximizing CPU and GPU performance. Now this is mostly automated. There are still two situations where reducing tile size from the default can be helpful:

  • When there is not enough memory to fit both the scene and render result, reducing tile size makes more memory available for the scene.
  • When a small object renders very slowly compared to other objects (for example transparent hair), rendering with smaller tiles can help keep the GPU busy.

Reference/Release Notes/3.0/Cycles - Blender Developer Wiki

A good testimony of that change can be found by comparing the official manual about tiling. It remained like this:

Tile size X/Y

The size of the tiles for rendering.

Depending on what device you are using for rendering, different tile sizes can give faster renders. For CPU rendering smaller tiles sizes (like 32 x 32) tend to be faster, while for GPU rendering larger tile sizes give better performance (like 256 x 256).

Performance — Blender Manual 2.79

Then for v3.0 it was changed to this:

Tile Size

This value is used to control the size of the tile used for rendering; decreasing the size reduces memory usage.

Note

In some cases changing the Tile Size can result in increased performance. For example when a small object renders slowly compared to other objects, using a small Tiles Size can lead to an increase in performance.

Performance — Blender Manual 3.0

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .