rendering pipeline questions

From what I understand the GPU is only used for the creation of the model and scene. The final rendering though is done by the cpu of the system, or the systems if in a cluster. Why is that?

Are not GPU’s more powerful than CPU’s. So why not use the GPU’s for the final rendering as well. If I buy something like a pair of NVIDIA quadro plex 2200 S4 linked via sli, why can I not route the Blender Rendering pipeline into the video cards via the CUDA programming interface?

It just seems like a waste of resources, but maybe I need to read more on the theory of 3D modeling. But, if the rendering pipeline can piped into the GPU’s and if it will improve performance I would like to learn how to do it.
Otherwise it seems like my money would be better spent building a RendreBoxx 10300 than buying a high end video card.

Can anyone clear this up for me.


this has come up several times before both here and on the mailing lists.

short answer is no, not possible right now. gpu’s aren’t general purpose enough yet, and there’s no single method that would allow a developer to create code to run on all gpus on all platforms. openCL might help, but its still only a specification at the moment.

Why do people think that?

The bottom line is, GPUs are only faster for specific things. If you could just run any code on a GPU then having a CPU would be pointless.

That being said, the idea for using GPUs to accelarate rendering is an old one, but since GPUs are so specialised, its not quite so straightforward.

This is quite a common misunderstanding.

The GPU is only good for simple in-order processing, or data streams that don’t branch of dynamicly, like a ray does when ray tracing.

If you wanted to use Nvidias plex system you’d need to re-program the majority of blenders rendering engine. That’s the reason why alot of rendering engines don’t fully support full on unbiased rendering on GPU chips, they just couldn’t cope with the complex calculations and large data streams.

There is a company called cuasticRT who are about to release hardware that can accelerate ray traced rendering in real-time and only a portion of that processing is done on the GPU, that part being the rasterization and basic shading. The complex ray-tracing & shadows etc are done on the CPU.

I really could go on and on.

At the end of the day if you want to render out faster, purchase a few U1 rack mounts, fill them with a quad core capable motherboard, stuff the fasted quad core you can get (i7 is the best to date), stick 8GB of RAM in them and a SATA HDD.

2 or 3 of them would kill a dozen plex machines at ray-tracing and rendering from blender and other leading apps.

Originally Posted by jrtroberts
Are not GPU’s more powerful than CPU’s.
Why do people think that?

First of all, in my case and maybe in many other people case, most books that talk about how to use blender or other graphics programs don’t generally come right out and discuss the internal workings of the rendering pipeline. At least not the ones I have read. Also with blender being free there are going to be many more people who have not had any professional training or schooling about 3D modeling. So there was some confusion in my head as to where my money would actually be going. From an outside and ignorant perspective 960 processor cores on a video card sounds like a super computer that can do anything. There is some talk about a graphics pipeline, but even the tech documents related to the card don’t really talk about the fact that a cpu is needed for the final rendering of the model that I just spent hours making in blender. Or at least not the ones that I have read. So yes I was confused, now I am not. That is the purpose for sites like this one I presume.
So maybe it is just like people who think that scratching at Poison Ivy will make it go away!!

Also: Thanks for the replies. I spent some time on the phone today speaking with professors at Southern Polytechnic University and some people at MIT about this issue. And I got the same answer. I learned that the GPU is engineered to crunch specific pre-ordered arrays of numbers, such as vertex positions and the general math behind the shape of the mesh and objects as they are manipulated during the modeling process. And that the CPU or CPU’s (if you have a rendering farm or cluster) are used to perform the real guts of the rendering. So I have heard the same answer from two different places. But I am not any kind of expert on the core of a rendering engine now that I had an hour worth of conversation about it. I do feel more confident in myself and my knowledge of the program I am coming to enjoy and maybe in some way love to use.

I also spoke with a sales rep From Boxx Technologies today about their RenderBoxxes. They seem like good solutions to the issue of rendering speed. Although I should be able to build something comparable for a little less if I bought the parts on my own. But the extra money may be worth it from a warranty and service option, but again I will need to learn more about this as I go.

Thanks everyone,

Oh and if anyone has a link to a website or a book or list there of that can give me more info on the inner workings of 3D modeling and how they interact with computers I would appreciate it if you would share them with me.

Have a great day and a nice life.