nVidia GT300

BFG10K

Lifer
Aug 14, 2000
22,709
3,004
126
MIMD is multiple instruction, multiple data. It means that at any time each processor can be executing a different instruction on a different piece of data to the other processors.

SIMD is single instruction, multiple data. It?s the same as MIMD except all of the processors have to execute the same instruction in lock-step, though they can still work on different pieces of data.

As an example, a single-core CPU executing SSE instructions is SIMD, while a dual-core CPU executing SSE instructions on one core and SSE2 instructions on the other is MIMD.
 

thilanliyan

Lifer
Jun 21, 2005
12,065
2,278
126
So what's the advantage for a GPU? Aren't all the "cores" of a GPU each working on a different set of data (different part of the frame) anyway?
 

BFG10K

Lifer
Aug 14, 2000
22,709
3,004
126
Well I haven?t looked at this closely but if current designs are SIMD, then at some level there must be a restriction that all units must be executing the same instruction at the same time, even though they work on different data.

So as a hypothetical example, each unit can work on a different pixel but they must all be doing the same thing to each pixel at any given time.

MIMD would remove this limitation as I understand it, as it would allow each unit to process instructions that aren?t the same as currently executing instructions on other units.
 

Hauk

Platinum Member
Nov 22, 2001
2,806
0
0
Hmm, sounds important. You have a new assigment BFG, gather info on this and help us understand.. :thumbsup:
 

thilanliyan

Lifer
Jun 21, 2005
12,065
2,278
126
Originally posted by: BFG10K
Well I haven?t looked at this closely but if current designs are SIMD, then at some level there must be a restriction that all units must be executing the same instruction at the same time, even though they work on different data.

So as a hypothetical example, each unit can work on a different pixel but they must all be doing the same thing to each pixel at any given time.

MIMD would remove this limitation as I understand it, as it would allow each unit to process instructions that aren?t the same as currently executing instructions on other units.

Interesting...thanks...I'll try to read up on it some more.

EDIT:
From this (I know...wiki is not a very good source):
http://en.wikipedia.org/wiki/MIMD

there's a section on "shared memory"...so could this lead to multiple GPUs sharing the memory?
 

MarcVenice

Moderator Emeritus <br>
Apr 2, 2007
5,664
0
0
I might be wrong, but let me speculate.

Currently an nvidia videocard (and ati's probably too) have all streamprocessors working on the same frame, when it's done, they move to the next frame. Also, we know that in certain games not all shaderprocessors are being used, right? Maybe now with MIMD those other ones CAN be used, to start on the next frame, or maybe they can do something else. But then again, I think shaderprocessors can do something different at the same time, because we know the GPU can do regular gpu-work, and do physx work at the same time. Maybe all shaders in a shadercluster have to do the same calculations, but different shaderclusters can do different calculations?

Now, with MIMD, maybe it's possible for shaders within 1 shadercluster to do different things? Maybe that's where the crossbar steps in? Jeez, I wish Derek was here to explain it to us.