A while back when I was trying to write a compiler, i posted on CS forum a discussion about what a minimal CPU must do. The result of the discussion was that CPU needs to be able to:
1. Add
2. Shift
3. Store to memory
4. Recall from memory.
5. Compare
6. Branch
Note that all other operations like subtraction, multiplication, division etc are just chains of the 6 above listed operations.
The concept of GPGPU is really catching on these days. OpenCL is becoming mainstream, Direct Compute, stream computing etc are all becoming well developed tools.
But I disagree that we are now developing a GPGPU. I say we always had a General Purpose GPU, however there was no code-base to use it.
There is always a need to design new hardare to improve the performance of old hardware, however I argue that there is no need to "invent" GPGPU, we had it for many years now, we just need to learn how to use it.
What do you think?
1. Add
2. Shift
3. Store to memory
4. Recall from memory.
5. Compare
6. Branch
Note that all other operations like subtraction, multiplication, division etc are just chains of the 6 above listed operations.
The concept of GPGPU is really catching on these days. OpenCL is becoming mainstream, Direct Compute, stream computing etc are all becoming well developed tools.
But I disagree that we are now developing a GPGPU. I say we always had a General Purpose GPU, however there was no code-base to use it.
There is always a need to design new hardare to improve the performance of old hardware, however I argue that there is no need to "invent" GPGPU, we had it for many years now, we just need to learn how to use it.
What do you think?