AOA AOA AOA Folding For Team 45 AOA Files Home Front Page Become an AOA Subscriber! UserCP Calendar Memberlist FAQ Search Forum Home

  #1 (permalink)  
Old 17th March, 2004, 01:22 PM
Member
 
Join Date: March 2004
Posts: 2

Pipelines

Exactl what is pipelines for video cards? How do they work. I heard the clock speed isn't everything, pipelines are important too.

An exmaple:

Are they like "pipes" where the more "pipes" there is, "more water is transfered"?
__________________
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 17th March, 2004, 01:41 PM
Gizmo's Avatar
Chief BBS Administrator
BassTeroids Champion, Global Player Champion, Aim & Fire Champion, Puzzle Maniax Champion, Othello Champion, Canyon Glider Champion, UFO Shoot Out Champion, Unicycle Challenge Champion, Zed Champion
 
Join Date: May 2003
Location: Webb City, Mo
Posts: 15,757
Send a message via ICQ to Gizmo Send a message via AIM to Gizmo Send a message via MSN to Gizmo Send a message via Yahoo to Gizmo Send a message via Skype™ to Gizmo

Every modern CPU has an instruction pipeline, including the GPU on a graphics card (the GPU is really just a specialized CPU).

Pipelines are a way to increase the speed of the CPU by dividing the work of executing an instruction into a number of small individual tasks which can then be executed in parallel, rather like the way an assembly line works. This is in general a Good Thing, because it allows the CPU clock speed to ramp up more easilly, thus giving us machines with ever higher clock speeds. Thus, longer pipelinen generally mean faster CPUs. Unfortunately, it also has a down side.

If something occurs that the CPU wasn't expecting, it has to dump the contents of the entire pipeline and refill it. This is what is known as a cpu or pipeline stall. This is a Bad Thing. So what can occur to cause a stall?

1) A missed branch prediction.
2) A data dependecy.
3) A system interrupt.
4) ...

There are lots of things that can do it, but the 3 I listed above are the biggies. Lots and LOTS of engineering time goes into dealing with issues 1 and 2. So, the longer the pipeline, the worse the effect of a pipeline stall.

Intel and AMD both take fundamentally different approaches to this issue, hence the reason they perform differently on different types of applications.

AMD uses a shorter pipeline than Intel, and so has a lower maximum speed, but because of the shorter pipeline, an AMD chip is able to do more work per clock cycle on a particular instruction than the Intel chip. On the other hand, the Intel chip can reach a higher clock speed. Depending on the type of application you are running, one architecture might be of more benefit to you than another. For example:

There is not a lot of work that has to be done for most basic math instructions such as add, subtract, multiply, or divide. As a result, any application that is heavy on this kind of stuff (such as video or audio encoding) is going to tend to benefit more from Intel's high clock speed than from AMD's greater work per clock. On the other hand, if you routinely run a lot of different applications all at the same time, particularly office type applications, or even games, you will probably get more benefit from the AMD chip because it takes less of a hit on task switching (which results in a pipeline stall). Intel partly compensates for this by using HyperThreading, but the basic premise still applies.

Now, wind this back around where it started:

Having a long pipeline in a GPU could THEORETICALLY help its performance in certain types of rendering applications. Since I'm no expert on graphics, I couldn't tell you what kind of applications would benefit the most.
__________________
Avatar and sig graphic by Pitch. Subscribers!
Ask about a custom graphic or avatar today!
 
Later,
Gizmo
Thermal Diode Mod and Direct-Die Water Block
8-Cheetah 18GiB U-2 SCSI
MegaRAID Enterprise 1500/128MiB
Samsung SyncMaster 955DF
TTGI/Superflower TTS-520 PSU
 

 
AOA Team filesAOA Team wcgAOA Team fah
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 19th March, 2004, 12:13 AM
JigPu's Avatar
Member
 
Join Date: August 2002
Posts: 29

Gizmo did an AWESOME job of explaining what a pipeline is, and the benifits of long vs. short.

So, we have a CPU or GPU with a pipeline which is splitting our work up into smaller, "easier to chew" chunks of work. By breaking an instruction up into several small ones, MHz can be increased without having to put much more additional stress onto the CPU's logic.

Modern CPUs and GPUs take this idea one step further. Not only do they have a pipeline, they have multiple pipelines (the Pentium 1 was Intel's first CPU with more than one pipeline). An architecture using multiple pipelines is called superscalar. By having multiple pipelines, a CPU can run several instructions that don't depend on each other simultanously. For example, the CPU could have two instructions waiting, the first being "A = B + C" and the second "Z = X + Y". Since neither calculation depends on the other, the CPU can run both in their own pipelines to increase speed. The problem with multiple pipelines though is that each pipeline requires it's very own logic circuits. If you have 2 pipelines you'll need 2 ALUs, 2 FPUs, etc. One ALU can't be used by two pipelines at the same time, so multiple parts have to be built. This increases production cost, and uses up valuable silicon.

Here's where GPUs come into the picture. The number of pipelines you commonly see referenced for a GPU is the number of "pixel pipelines" it has. Each pixel pipeline calculates the color of an individual pixel. Lighting, texturing, etc must all be calculated by the pipeline to come up with the final result. This is the area of the GPU that pixel and vertex shaders come in. They modify specific values which change the color of the pixel based on some short instruction list.

Each pixel pipeline can apply either one or two textures per pass. For example, you'll see references to "8x1" "4x1" "4x2" etc. The first number is the number of pipelines the card has, and the second is the number of textures that pipeline can apply in one pass. If a pixel has multiple textures on it, then both textures must be taken into account for the final color. In a "x1" system, a pixel with 2 textures will have to be run through a single pipeline two times, whereas a "x2" system could apply both textures on the same pass. Theoretically "8x1" is as efficient as "4x2", but only when each pixel has two textures on it. When a majority have more or less than two textures, one will be more efficient than the other.


The more pipelines the better, though the more expensive it is to build. A card with 12 pipelines would be awesome, but would cost an inordinate amount of money.
JigPu
__________________
- OCForums Member -
(I come here when it's down or nothing's going on )
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
x800xt only 12 pipelines chuckied Graphics and Sound cards; Speakers and other Peripherals 2 17th February, 2005 02:07 PM
Flashing Bios of 9500np to 9700np, can it enable 8 pipelines? roders Graphics and Sound cards; Speakers and other Peripherals 1 15th July, 2003 07:42 AM


All times are GMT -5. The time now is 11:55 AM.


Copyright ©2001 - 2010, AOA Forums
Don't Click Here Don't Click Here Either

Search Engine Friendly URLs by vBSEO 3.3.0