4
$\begingroup$

I've already tried GPU Rendering and it seem to be twice as fast as the CPU. However I have some situation where tried to render on the GPU, but it doesn't do anything. When I switch to CPU it renders.

I have some fur texture/materials using particle systems. I wonder if that causes the GPU not to render, I'm not really sure.

$\endgroup$
7
  • $\begingroup$ i have an i7 laptop with 3.1 ghz turbo boost, a ram of 8GB and an entry-level nvidia 840m 2gb.... so i have to render in CPU in some occasions then.?thank you for the response @cegaton, much appreciated =) $\endgroup$
    – Allen
    Feb 3, 2015 at 15:14
  • $\begingroup$ There are certain features, such as volumes, that are not (yet) supported on GPU. It is also a possibility that your scene takes more memory than your GPU has. $\endgroup$
    – PGmath
    Feb 3, 2015 at 17:00
  • 1
    $\begingroup$ I don't really think this should be closed as opinion based. There are certain definite things that can cause the GPU to not render. $\endgroup$
    – PGmath
    Feb 3, 2015 at 17:02
  • $\begingroup$ This question started off as very opinion-based (Original question was "Is CPU better than GPU in cycles?"). Still, good questions have specific solutions, and this question is too broad. @Allen Give us some more info on your specific problem. Upload your Blend if you can, or use screenshots. There are a ton of possible reasons why your scene can't render =) $\endgroup$
    – Humilton
    Feb 3, 2015 at 17:44
  • 1
    $\begingroup$ @cegaton will splitting the scene into layer helps to reduce the memory usage at once ,since the layers are rendered separately $\endgroup$
    – Chebhou
    Feb 4, 2015 at 9:00

4 Answers 4

4
$\begingroup$

It all depends on the complexity of the scene, the size and number of textures used, and also on the kind of of GPU at your disposal.

GPU rendering can be faster than CPU on most modern graphics cards with lots of CUDA cores, but it is also limited by the amount of VRAM built on the card (usually not a lot). Once you've reached that limit, the rendering process will fail.

If there is only one GPU on your system, and the GPU is also being used to feed the monitor(s), even less VRAM will be available for rendering, as some of it will be already in use by open applications.

On systems with multiple GPUs the VRAM is not shared, and Blender will only use as much memory as in the smallest one of the card's.

When you render in CPU you can use all the RAM available in your system, and once you've reached the physical limit, the OS will start virtualizing memory by caching on disk. So for very complex scenes with big textures you might only be able to render on CPU.

A possible way to render complex scenes in GPU is to spit them in layers and combine them at the end (Read this link on blenderguru.com)

Other considerations:

GPUs for laptops are in general not as powerful as the ones in desktops in terms of speed, number of CUDA cores or VRAM.

When it comes to older GPUs or with less CUDA cores, it is possible that CPU rendering might be faster. Specially if the CPU is multi-core (or multi-threaded).

In Cycles, blender will render as many tiles as there are CPU cores simultaneously. A single GPU will only render one tile at the time, multiple GPUs will render as may tiles as there are GPUs

To make rendering more efficient is important to find the size that works best for your machine. Sometimes larger sizes will render faster, but there are times when you need to keep them smaller for the machine to work efficiently.

GPUs work better with tile sizes ranging from 128x128 to 256x256, but CPUs seem to like smaller size tiles like 16x16 or 64x64.

Some operations in Cycles still only work on CPU (like smoke rendering).

$\endgroup$
1
  • $\begingroup$ Smoke rendering is supported in GPU starting with version 2.77 $\endgroup$
    – user1853
    Mar 21, 2016 at 16:06
1
$\begingroup$

Try updating your blender version. Some of the older versions before 2.73 did not support functions on the GPU that were supported on the CPU. Make sure you set your Feature Set to Experimental when rendering on the GPU to ensure everything is supported.

The major limiting factor for rendering on the GPU is texture size. If you have many textures, they can't all fit into VRAM (in their uncompressed versions)

$\endgroup$
1
$\begingroup$

You may also need to update the GPU driver to the latest version.

nVidia tends to upgrade the CUDA capabilities in nearly every new driver, it's not the ultimate solution but it could help.

$\endgroup$
1
$\begingroup$

If the scene requires Open Shading Language (for scripted custom shaders) the option disapears from the render settings when you switch to GPU. These shaders wouldn't work on GPU.

enter image description here

$\endgroup$

You must log in to answer this question.

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