Page MenuHome

Cycles rendering is sometimes much slower than with 2.63a
Closed, ArchivedPublic

Description

Hi, maybe it is not a bug, I don't know. Maybe it's due some changes in the Cycles render engine, but render times are sometimes much longer yhan on 2.63a. It's when you set render Tiles to 1x1. It supossed to be comparable to 2.63a render times, as it had no render tiles option, but on my system the render times are 2 times longer.

I've checked this on a MacBook Pro 13" Mid 2010. It has dual core processor and an nvidia GeForce 320M graphic card. I've had this results with the CPU rendering. I think it's something to do with processor cores. I have a dual core processor and I think that with 1x1 tiles Blender uses only one core.

Why not to use tiles render? While for animation purposes, when you render every frame with the same samples amount, the new tiles rendering option is really great, in some cases 1x1 (or none) tiles are bad option. Imagine you render an architectural visualization. You set your samples really high and hit render. With every sample you whole image gets cleaner. You don't have to wait till the last sample. You can stop rendering when you think it looks OK. So this "no tiles" (1x1 tiles) rendering is very handy, but with 2.64 you have to wait much longer for the results. In my case 2 times longer. If it really depends on the cores, users of the 4core processors will get 4 times worse results than with previous version.

Maybe this could be the solution - apart from changing tiles value, you could have an option to disable tiles rendering completely. You know, the "turn off" button. And when the tiles are turned off, every core works on the rendering.

Details

Type
To Do

Event Timeline

+1 although my render-times are better and sometimes much better, with tile rendering.

Maybe it's a bug making this regression for mallow.

+1 because non tile renderer was very useful for setting up one frame for rendering, at night, with master sample set to 0.
I think it would be nice to see it back as an option :)

P.S.

Tile 1x1 is of course slower for me too.
Tile rendering speed-ups only when I use more tiles.

Currently CPU threading is happening on tile level. It's much better for general purposes but indeed slower than non-tiled rendering in previous releases. We're aware of this issue and currently wouldn't consider this is a bug -- just something which could be handy to implement in current cycles basis.

Sergey Sharybin (sergey) closed this task as Archived.Oct 5 2012, 8:10 PM

There are situations when non-tiled rendering is a far better way than tiles. Like the example mentioned by Przemyslaw Golab. In 2.64 it is slower rendering. 2 times slower with dual cores, 4 times slower with 4 cores, etc. A bug or a bad design, doesn't matter. It is a step (or a few) back. Please, reconsider closing this thread. If rendering was slower by a few percent, OK. But 2x, 4x or even 8x times slower?

If you render on a GPU then you should as less tiles as possible. Ideally it is 1x1 at moment. Anything else is a trade of performance vs memory.

But if you use the CPU, then you should use many tiles. If you use only one tile on CPU (1x1) then only one core of the CPU will have something to do, because there is only one thread. I usually use 64x64 tiles on the CPU, even so the result will have less tiles (every tile has a minimum size).

The best way would be to use multiple threads and only one tile as the default on the CPU and only to use tiling if the user requests it. At the moment the user has to use different optimal settings depending on if he uses CPU or GPU for rendering.

And it would be best to let the user decide. Now - tile rendering is a speed up. Great for animations, for situations where you know exactly with how many samples you want to render your image. For still images it is a better way to set high samples value and stop the render whenever you want. this method was great on 2.63a, now it takes 2x, 4x or more render time.

Guys, tile rendering is a great feature, but if it's an option.

Hi, in my experience GPU rendering in 2.64 is much slower than 2.63a, no matter which tile setting I use.
And rendered mode in the viewport is slower than 2.63a too.

I set up a simple test scene with three Suzanne (subsurf level 2 and default glass shader), a ground plane with two walls (diffuse shader), and two emitting planes as lamps (see attached .blend file).

In Blender 2.63a the render time with 200 samples on my GPU (NVidia GT525M) is 2:47 (min:sec), while in 2.64, with the default 8x8 tiles, it renders in 3:55, over 40% slower!

I tried many other tile settings (1x1, 2x2, 2x4, 4x4, 12x8, 16x16, 32x32), with no luck: the suggested 1x1setting gave an even worse render time (4:00), and the best I could achieve is about 3:30 with 2x4, 2x2 and 4x4 tiles, still over 25% slower than 2.63a.

The Blender GPU benchmark (http://benchmark.cd3dtech.com/), with 5000 samples, takes 25:19 in 2.63a and 32:41 in 2.64 with 1x1 tiles, about 30% slower.

My system is as follows:
CPU: Intel Core i7 2670QM@2.20 GHz
RAM: 8192 MB
GFX: nVidia Geforce GT525M 1024MB
OS: Windows 7 Pro SP1, 64bit
Drivers: NVidia WHQL drivers v306.23
Blender: 2.64 r51026 64bit