An in depth look at CPU vs. GPU rendering.
By rendering only on the CPU we avoid all bottlenecks, problems, and limitations of GPU rendering, which are covered in detail below.
Insight64 principal analyst Nathan Brookwood once put it this way: “GPUs are optimized for taking huge batches of data and performing the same operation over and over very quickly, unlike PC microprocessors, which tend to skip all over the place”.
When it comes to light bouncing around in a 3D scene, it DOES skip all over the place – exactly what calculation is required next is not easily predictable, and it may not be the same as other calculations which need to be happening at the same time, and that is why the architecture of a CPU is much better suited to this task than a GPU.
That means that the benefit of “thousands of processors” is only fully realized when all the cores are doing more or less the same thing at more or less the same time. The more varied the work that each processor core is doing, and the more branches in logic, then the more work is required to keep everything in sync and the less benefit you will see with GPU architecture, and at some point in complexity the CPU will easily overtake the performance of the GPU.
The images below show two GPU engines allowed to render for 5 minutes (to give a fair power–price comparison, as the CPU used would cost roughly twice as much as the GPU used):
This means that the more complex your scene, and the more light must bounce from surface to surface and material to material, the less benefit you will see.
This means it will always be possible to set up scenes where GPUs outperform CPUs, and scenes where CPUs outperform GPUs, and neither is “always better” than the other. Overall, according to academic papers and empirical evidence, CPUs and GPUs have roughly the same per–$ and per–Watt performance in non–trivial scenes.
If GPUs were always better for all tasks, then we’d see computers built entirely without a CPU at all – this doesn’t happen, because each is better for particular types of logic and tasks.