Stream Processors help
I'm wondering what exactly stream processors do and how they help increase performance in games and other applications. If someone can easily explain it or link me a site that explains it easily that would be most appreciated.
google is your friend
OK I don't think the wiki article explains the thingy in "very" simple words and also there aren't any proper list of benefits listed.
So GPGPU and stream processing is a very wide and interesting subject and I recommend googling and searching it if you have time. But anyways here's stream processing in a few words :-
A normal CPU is made up of multiple cores which can process different functions at the same time. For example you can run a compiler on one core and an encoder on another. These cores are very complex and process these functions at a very fast rate. Applications that can do several functions or threads at the same time can benefit greatly from this. Also these processors can perform a single function at an extremely fast rate. There are 4 and 2 cores in modern CPU's
Now stream processors perform a single thread at a very slow rate, I can't find data on how slow but it should be around 1/10 th of the speed of the CPU in a normal GPU. Anyways in Larrabee it is 1/2 the speed of a core 2 at the same clock frequency. But
GPU's contain hundred of these very simple processors which can make overall computation very high. However, different functions cannot be performed in at the same time in these stream processors. The same function can run on a very large set of data in these thingies. For example you can't run a compiler and an encoder at the same time but you can encode a large number of files at the same time. Of course you can also encode two files in two separate cores in a desktop processors, but overall it will be much slower than in a GPU. This type of parallelism is called SIMD (Single Instruction Multiple Data). Think of things that can benefit by doing the same thing on different sets of data. For example we have 3d rendering. You can use the same function to render 1000 frames in different cores.
The raw computational power of modern GPU's is 20x, i.e they can process about 1 teraflop while CPU's max do 50 Gigaflops. But this doesn't mean that there would be a 20x improvement in all tasks. For example, Nvidia and AMD launched Avivo and Badaboom media encoders and these provided about 4x the speed of a CPU. With better drivers and and opencl we can expect a 10x improvemet in a lot of things like rendering and then there's larrabee too.
Stream Processors are simple execution cores like that of a cpu except their simpler, have less complex instruction sets, and do less per clock cycle. AMD's SPs and Nvidia's are very different though.
Nvidia - The simple way
Nvidia's SPs are all the same like a CPU, when you write code as many as needed will be used, really simple, SP 1 is the same as SP 2 & 3 & so on.
AMD - Teamwork
You might be wondering why the 4870 has 800SPs while the GTX260 has 216, AMD's SPs are grouped in blocks of 6. The first 4 are the same while the 5th carries FP/INT instructions and the 6th keeps things in check. Theoretically this can more potential yield but the code has to be optimized for the architecture.