Similar to the way a CPU has a pipeline filled with small stages that each do a single task quickly, so too does the GPU in your video card. Today on DevHardware, we'll go over those stages and what goes on in them, in this first part of our series on graphics.
Those of you who have checked into how a CPU operates know that all current desktop processors use what's called a "pipelined" architecture. What this does is take a large task, and break it down into smaller stages. This allows you to do multiple things at once and make your overall clock speed equivalent to the slowest of those stages.
A good example of this is doing multiple loads of laundry (for those of you who live in the real world and don't have mommy doing it for you). You put the clothes in the washer, set it to wash, take the clothes out, put them in the dryer, then fold them.
Now pretend you have multiple loads of laundry to get done. This is where the pipeline comes in. When the first load comes out of the washer, you can put the next set in, while the previous load is drying. Then, when it's done, you can fold one set, while one is drying, while another is washing. Now you have a three stage pipeline, and you can get more work done. At the end of each stage, you have a load coming out completed, after the first load has passed through all the stages, assuming no interruptions.
Old:
Wash->
Dry->
Fold->
Wash->
Dry->
Fold->
Wash->
Dry->
Fold
Pipelined:
Wash
Wash->Dry
Wash->Dry->Fold
Dry->Fold
Fold
In the space of less time, we've got our laundry done. We carried three jobs "in flight" instead of just one. With a GPU, it's the same thing. Many things need to happen to go from a 3D model to the pixels on your monitor. By increasing the number of pipeline stages, each individual stage takes less time to complete, increasing the speed you can clock the processor. As well, it increases the number of instructions you can carry in flight, so that at the end of every one of your new faster clocks, you can have an operation completed.
In most new architectures, there are multiple of these pipelines. Graphic modelling is something that applies itself well to parallel computation. The architecture outside of the pipeline itself is something we'll get to in another one of these articles later though. So now you understand how pipelining can be useful. How is it actually done in a GPU?
KEITHLEE2zdeconfigurator/configs/INFUSIONSOFT_OVERLAY.phpzdeconfigurator/configs/ OFFLOADING INFUSIONSOFTLOADING INFUSIONSOFT 1debug:overlay status: OFF overlay not displayed overlay cookie defined: TI_CAMPAIGN_1012_D OVERLAY COOKIE set: status off