Today's SIMD computer: the GPU
 

If you are a serious video gamer, you would have shopped for graphics cards:

A graphics card (see picture above) is:

  • Graphics card = a computer built using a Graphics Processing Unit (GPU) processor (instead of using a CPU processor)

The difference between a CPU and a GPU

A computer built with a CPU looks like this:

The CPU's decode unit executes 1 instruction on 1 set of data using 1 ALU circuit

The difference between a CPU and a GPU

Example: instruction execution by a (SISD) CPU:

The CPU's decode unit executes 1 instruction on 1 set of data using 1 ALU circuit

The difference between a CPU and a GPU

A computer built with a GPU looks like this:

The GPU's decode unit executes 1 instruction on many set of data using many ALU circuit
(A GPU has L2 cache memory ! - L1 is too expensive...)

The difference between a CPU and a GPU

Example: suppose the GPU fetches the instruction add R0,R1,R2

Note: each processor has it's own set of registers !!!

The difference between a CPU and a GPU

The instruction decode unit will instruct all ALU units to perform add R0,R1,R2:

Each processor will compute on it's own set of registers !!!

GPU design by NVidia

Here is a GPU schema (from 2010) of a NVidia GPU:

Today's GPU's can have over 10000 ALU's (or "cores") !!