4 Easy Ways to Speed Up Cycles

Did you know that the Blender Internal render engine has been discontinued?

*gasp!*

I know. Apparently the decision was made 2 years ago that the Internal Render Engine development would cease, and be focused on Cycles instead.

For some reason this news was never broadcast to the community, so I’m doing it right now.

What does this mean? It means that the future of Blender will likely be Cycles only. If you haven’t made the switch already, then you may want to consider it. This tutorial may help.

I posted this news recently on the Blender Guru Facebook Page and besides the initial shock, the overwhelming response was “Noooo! Cycles is too slow!

But here’s the thing: Cycles can be fast. Competitively fast in fact. But you have to know how to tweak it.

In the words of Thomas Dinges (developer), “The Internal rendering engine was built for speed, but if you wanted realism you had to turn stuff on. Cycles is the other way round. It’s built for realism, and if you want it fast you have to turn stuff OFF.” (said during a conversation at the 2012 Blender Conference).

So without further ado, here’s a list of 4 Easy Ways You Can Speed Up Cycles…

1. Switch to GPU rendering

This may sound like an obvious tip to some of you, but a lot of users aren’t aware just how much faster GPU rendering is.

Take this scene for example:

BMW Benchmark Scene by Mike Pan - Download it here.

BMW Benchmark Scene by Mike Pan – Download it here.

On a CPU it renders in 9 minutes 34 seconds.

On a GPU it renders in 46 seconds.

“Whaaaaaaa…!”

That’s right. Simply by changing one setting you can improve your rendertimes by x12! It’s the single best thing you can do to improve your rendertimes.

To enable GPU rendering, go to File>User Preferences>System and under Compute Device, check CUDA. Then in the render panel you will have the option to change the device to GPU (screenshot).

NOTE: GPU rendering is currently only possible on Nvidia graphics cards. Support for AMD cards has been put on-hold due to driver and hardware limitations.

2. Reduce the amount of bounces

Comparison of Bounce settings in Cycles

Comparison of Bounce settings in Cycles

One of the biggest reasons that Cycles takes so long to render is because it calculates light bounces.

What are light bounces you ask? Light bounces are indirect light that bounces off walls and other objects. It’s what makes the scene look so good in comparison to the Internal renderer.

However, this realism comes at the price of render times.

By default the maximum amount of Light Bounces is set to 8. Which is far too high in my opinion. I use Cycles a lot, and I rarely need more than 4 bounces for adequate realism.

To change the number of bounces, go to the render panel and under Light Paths, you’ll find Bounces (screenshot). Set the Min to 0 and Max to a low setting. Experiment with the setting till you find a value that achieves a good amount of realism, but without sacrificing too much in rendertimes.

For even more fine tuning, you can adjust the amount of bounces for individual light path types like diffuse, transmission and glossy. In the example above, I would set the Transmission amount higher than others as it is the most noticeable when reduced.

3. Change the Tile Size

Another awesome, yet relatively unknown way of reducing render times, is to change the “Tile Size”.

What are Tiles? Tiles are those little boxes that appear on your screen while blender is rendering.

TILES. If I had a dollar for every minute I've spent watching these squares, I could retire.

OH TILES. If I had a dollar for every minute I’ve spent watching these squares unfold, I could retire.

Tiles are awesome, because it allows the processor to focus on a smaller portion of the scene and save memory, thus reducing crashes.

Blender always had the ability to change the number of tiles, but recently a code change made it so you can change the exact tile dimensions:

The new way of setting tiles in Blender...

The new way of tiling in Blender…

That’s right. Tiles are no longer defined by their count, but by their size in pixels. This was introduced because certain sizes render faster than others. (If you don’t have Tile Sizes, download the latest trunk version of Blender.)

I conducted some studies using this scene, and came to these results:

Yes… Tiles matters a whole lot more than you may have thought.

Interestingly, the fastest render time for CPU is the slowest on the GPU. This due to the GPU only being able to render one tile at a time, so it doesn’t benefit from more tiles.

In summary, the optimal tile size for GPU is 256 x 256. For CPU it’s 16 x 16. And if those don’t work for you, try to keep it in the power of 2s (eg. 128, 256, 512, 1024), as the processor handles these faster.

4. Reduce Your Samples

Put this one in the “duh” category, since most people already know it. But samples are the biggest time sucker of all, so I need to mention it.

What are Samples? Samples are the noise that appear as your scene is rendering. In the render panel you define the number of samples, and then blender stops once it reaches it. The more samples, the clearer, but longer your render is.

More samples are generally good. But there comes a point where more samples does almost nothing.

Take these two examples:

2000 samples – 9 minutes

5000 samples - 21 minutes 23 seconds

5000 samples – 21 minutes

Did you really need those extra 3000 samples? Unless you’re a pixel scientist (I’m sure the job exists somewhere) you probably wouldn’t have noticed much of a difference. And if you did, you could always put the render through photoshop to clear up any remaining noise.

If you’re only rendering a still, an extra 12 minutes probably isn’t anything to stress over if it’s for the final render. But if you’re rendering an animation? Well those frames will add up very quickly.

Moral of the story: Don’t go overboard on the samples, because the audience probably won’t notice anyway. Experiment and see how few samples you can get away with.

Got a tip for speeding up Cycles? Post it in the comments below.

Tags: ,

About Andrew Price

User of Blender for 9+ years. I've written tutorials for 3d World Magazine and spoken at three Blender conferences. My goal is to help artists get employed in the industry by making training accessible and easy to understand. I'm an Aussie and I live in South Korea ;)
  • Tawonga Donnell Msiska

    I am not really sure that points 3 and 4 are really applicable for final productions. The time improvements brought about by tile sizes are hardly noticeable (128×128 – 16×16 on cpu or 64×64 – 512×512 on CPU). Point number 4 is actually dependent on a lot of factors. Depending on how your scene is setup (materials, textures, lights, mesh polygons, particle systems etc), 80 samples may actually do the trick, set it up differently and you will see that you need 5000 samples or more to render the same scene. So we rarely have enough control on this factor as it is determined by the required quality of your final render.

    One other thing you should have pointed out is the operating system. 32 bit OS render slower than 64 bits. If you can find one that has got higher bits even better, though not so sure if that even exist. The CPU architecture is also important, single chip integrated CPU’s are slower than separate ones. Either way Cycles is expensive to run, is slower and very boring to tweak its performance than blender internal. Developers should very much improve this engine and fast!

    With all that being said, I still love Cycles despite the pain in my behind!!! :-)

  • Erik

    Speeding up Blender in general:

    Use Linux!

  • Raghav

    Older NVIDIA GPUs are not supported in the newer versions of blender. We also need a GPU that supports CUDA 2.0 and above. Or else we’re just slowing down render, let alone speeding it up. The GPUs that are compatible are the NVIDIA GTX series, which are fairly new. So people, don’t get your hopes up, because you are not going to easily save time very soon. And that’s just a pain in the a**.

  • Fredhystair

    Hi guys
    I’ve got the same pblm that John:
    My GPU renders are more than 2 times longer than my CPU renders. I really don’t understand. Here’s my setup :
    - Win7 X64
    - latest version of Blender (downloaded on the official site)
    - My Graphic card is Nvidia GeForce GT 520 with drivers updated
    - The CUDA Toolkit is properly installed
    - Set ups made in user preferences are OK too.
    Anyone got an idea? It kinda drives me mad :-)
    Thx

  • John

    Hi guys.
    I’m trying to figure out why my GPU renders slower than my CPU.
    I have an Intel Core i7 processor with 4 GB of RAM (64x)
    and a NVidia GeForce GT 540M (1 GB).
    Is my GPU not enough? Is anyone else in the same situation as me but getting different results? (i.e. GPU performing better)
    Thanks

  • shank21101985

    Thanks for the Guide !!

  • licuador

    Two things I found to speed up renders in Cycles.

    1 turning off Progressive refine helps tremendously.

    2 The tile size doesn’t have to be square all the time. I divide the image in 8 tiles (the magic number for me is x:480 y:270 left to right for HD render)

  • Joachim Otahal

    Thanks for the Guide! Sad that you did not test even bigger tiles for CUDA. On this card here with 6G VRAM a tilesize of 512×512 (31.3) or 1024×1024 (32.7) is faster than 256×256 (34.7).

  • http://www.facebook.com/philliplarue0 Phillip Larue

    hallo guys. I have a problem, on the drop down menu in “User preference” under compu device, I only see cpu but not gpu.
    I have an Intel HD Familly graphics card

    • Donald Bronson

      Intel HD means “integrated graphics.” In other words, you don’t actually have a GPU, the CPU takes care of the graphics internally. Thus, because there is no physical GPU, only your CPU shows up. You will need to buy a dedicated graphics card if you want to use GPU rendering.

      • http://twitter.com/sakjur Emil Tullstedt

        And remember to pick up a CUDA-compatible graphics card (ie Nvidia) if you don’t like to wait for OpenCL-support to become.. useable ;)

  • xD

    Hey its not a Big tip but when you are ready to hit render n walk away fro a bit, use the mouse to scroll it waaay into the center, so its not zoomed into view, and this sometimes seems to give it a lil nudge.