24
$\begingroup$

The Cycles render engine can render both on the CPU and the GPU. I often render over-night so I do not need my computer to be responsive.

Is it possible to render with Cycles using both the CPU and GPU? If not, are there any other workarounds that maximize the hardware's potential?

This question here: Can I use both GPU and CPU together when I render with Cycles to decrease render time? focused on single frames optimisation.

$\endgroup$
2

4 Answers 4

21
$\begingroup$

If you render an animation, you might achieve what you want by having two instances of Blender running. One renders with CPU, the other with GPU. Both use the same file and the same folder to render the image sequence.

You can tell blender in the Output panel to create placeholders and to not overwrite existing files. Placeholder creates an empty file when the rendering of a frame starts and disabling Overwrite tells Blender to leave this particular frame in peace if it already exists. This is the simplest approach to creating a render farm.

I must admit that my best graphics card is too old to test this approach myself. If it works, you might also want to check temperatures and render for a few hours before you leave the equipment unattended. Everything at your own risk.

If you want to render a single image, you can set a different seed in the Sampling panel and render for example 2000 samples with the CPU and 4000 with the GPU and overlay both images in the compositor.

$\endgroup$
6
  • $\begingroup$ Does this work on stills? PS: my computer can't overheat, it will shut down before it does that. $\endgroup$
    – user320
    Oct 7, 2013 at 23:49
  • $\begingroup$ -Can blender do distributed rendering? $\endgroup$
    – user320
    Oct 7, 2013 at 23:55
  • $\begingroup$ No, afaik this works for animation only. Hm, if you use border Render, you can render two halves of the same image and combine them. Or you can split the samples between the machines. Although you need to have different seeds in the Sampling panel. $\endgroup$ Oct 7, 2013 at 23:55
  • 4
    $\begingroup$ @user320 if your computer overheats when being fully utilized, then its faulty hardware - under-clock it or get better cooling.. or find a way to throttle the system based on temperature. This is outside the scope of Blender to solve and something the system should manage. $\endgroup$
    – ideasman42
    Oct 8, 2013 at 8:07
  • $\begingroup$ how exactly would you overlay them in the compositor (for stills)? What mixing mode would you use? $\endgroup$ Dec 14, 2015 at 4:15
5
$\begingroup$

It's now possible with the 2.79 daily release to render with both gpu and cpu at the same time.

Overall I noticed saving around 15 minutes on a 1 hour render.

I didn't explore all the combinations while testing but I suspect the hybrid feature slows down the gpu part of the process but in the overall it's faster. A reason for this is probably the smaller tile size you have to set because of the cpu implication of the process. Eventually with more improvement, this feature could be a no brainer I guess. Maybe the eventual possibility to set cpu and gpu tile size independently could improve the performances also (While respecting the multiple).

In my opinion, it definitely worths trying and may work even better than the way I observed in some cases.

Ch

$\endgroup$
1
  • $\begingroup$ I can confirm that it still seems to be true... Just renderer over 800 frames on linux and it saved me 2 minutes by frames (Before it was 11 minutes) using 64 pixel tile size. 512x512 x 2GPU is slower than 64x64 x 2 GPU + 4 Cores. I'm not sure yet but I guess newest releases of 2.79 Beta seems even better than before working with small tiles with Hybrid. $\endgroup$
    – HellrazorX
    May 18, 2018 at 4:17
2
$\begingroup$

Shouldn't you be able to do this with two instances of blender, one running on every other frame starting on 1, the other on 2 with one set to CPU and the other GPU?

From what I understand from the other answer, (s)he is talking about both working on the same frame, which would improve quality, not time.

$\endgroup$
1
$\begingroup$

Another idea would be to have 2 instances of blender and have 1 of them render the whole animation on CPU with (example:) 200 samples, and with the other render the whole animation on the GPU with a lot more samples. Then you can use whatever software to mix them together. As mentioned before, seed for sampling must be different.

$\endgroup$

You must log in to answer this question.