1
$\begingroup$

I just switched from Mac (macOS) to PC (Windows 10). Since Macs can't render with GPU, I'm new to the concept of being able to render with Cycles using a GPU. However, I have a couple of questions:

  1. Should I render with the CPU or GPU?
  2. Are there any downsides with rendering with the GPU?
  3. Which one of CUDA, OptiX, and OpenCL should I choose for GPU-rendering?
  4. What size should the tiles be when rendering with the GPU?

I haven't owned a PC in my whole life, so this is all very new for me.

My specs:

  • CPU: AMD Ryzen 9 4900HS
  • GPU: NVIDIA GeForce RTX 2060 with Max-Q Design
  • RAM: 32 GB

enter image description here

enter image description here

$\endgroup$
4
$\begingroup$

(1) Should I render with the CPU or GPU?

If you have a powerful GPU with enough memory to handle the scene, it is preferable to use the GPU or a combination of CPU and GPU. The NVIDIA GeForce RTX 2060 is a high-end GPU, at the time of writing, which will significantly improve render performance compared to CPU only.

(2) Are there any downsides with rendering with the GPU?

When using a GPU that doesn't have enough memory to fit the scene one of two things can happen. For AMD graphics cards (OpenCL) Blender wouldn't be able to render the scene. When using Nvidia graphics cards (CUDA or Optix) Blender can swap data between GPU and RAM as needed, but this requires more time. Whether or not this is faster than just rendering on the CPU will depend on the particular hardware used.

Certain optimizations aren't supported on the GPUs, for instance equiangular sampling for lights. CPUs may have an advantage for those scenes and it makes sense not to combine CPU + GPU rendering in this case because there may be visible differences between tiles rendered on the CPU and GPU.

(3) Which one of CUDA, OptiX, and OpenCL should I choose for GPU-rendering?

The available choices depend on the Blender version, manufacturer of the graphics card(s) and whether it meets the minimum requirements for GPU rendering.

Blender 2.83

CUDA: Nvidia graphics cards with compute capability of 3.0 or higher.

OptiX: Nvidia RTX graphics cards only.

OpenCL: AMD graphics cards with the GCN second generation micro-architecture or later.


Blender 2.90

CUDA: Nvidia graphics cards with compute capability of 3.0 or higher (requirement for Blender 2.83).

OptiX: All Nvidia GPUs with a compute capability of 5.0 or higher. This requirement is lower than in Blender 2.83 (see release notes of Blender 2.90).

OpenCL: AMD graphics cards with the GCN second generation micro-architecture or later (requirement for Blender 2.83).


Note that you can only select one of the options and thus cannot use both Nvidia and AMD GPUs for rendering.

Since you're using a Nvidia RTX graphics card you can either select CUDA or OptiX. OptiX leverages the special RTX hardware ray tracing functionality of the GPU which can increase the performance, however it does not have feature parity with CUDA. The following features are missing for OptiX according to Blender's manual:

  • Baking
  • Branched Path Tracing
  • Ambient Occlusion and Bevel shader nodes
  • Combined CPU + GPU rendering

(4) What size should the tiles be when rendering with the GPU?

A slightly bigger tile size seems to be the general recommendation, e.g. $256 \times 256$ px. However, which particular tile size is ideal for your hardware should be evaluated instead of relying on measurements found on the internet that use a different hardware, since they may not be representative. You can determine good settings by picking a demo scene and measuring the required render time for different tile sizes. There's also an add-on called Auto Tile Size, which is included in Blender by default, that can help you select a consistent tile size across the render.

| improve this answer | |
$\endgroup$
  • $\begingroup$ I'm definitely bookmarking this thread for future reference :). Thanks for such a clear overview. $\endgroup$ – Jachym Michal Jul 15 at 20:31
  • 1
    $\begingroup$ Nice comprehensive answer. Probably worth mentioning that OpenCL support is for AMD cards and CPU only $\endgroup$ – Duarte Farrajota Ramos Jul 15 at 21:22
  • 1
    $\begingroup$ Thank you for a very good and informative answer, @RobertGützkow. I will use CUDA GPU-rendering from now on. In my testing it was about three times faster than CPU-rendering. OptiX is about 20% faster than CUDA, however, due to OptiX's missing features I will stick to CUDA for now. OptiX denoising + CUDA GPU-rendering is a very good combination that kind of gives you the best of both worlds. $\endgroup$ – StillerMauritz Jul 16 at 10:27
  • $\begingroup$ Easy, I just though having that q&a around might be nice... $\endgroup$ – brockmann Jul 16 at 16:57
  • $\begingroup$ @brockmann Sure, nothing wrong with that. I just don't think that the info provided in the answer are all that helpful, when you can get an accurate result by simply measuring. Here's the link for reference, in case somebody is wondering which answer we're referring to. $\endgroup$ – Robert Gützkow Jul 16 at 17:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.