GPGPU stands for General-Purpose computation on GPUs. With the in-creasing programmability of commodity graphics processing units (GPUs), these chips are capable of performing more than the specic graphics com-putations for which they were designed. They are now capable coprocessors, and their high speed makes them useful for a variety of applications [1]. We give a brief history of the GPU to see how it has developed over the last couple of years, discuss the benets and drawbacks of using the GPU and show why it is so useful for solving general problems. We also take a look at what the future GPUs will probably look like. To get some insight of how programming on the GPU works we explain the stream programming model used to program on GPUs...