GPU for General Purpose

GPU stands for Graphics Processing Unit.They are highly parallel units which are largely unused for general purposes.The reason is that mapping a general task to a more graphics task is difficult.This field has been referred to as GPGPU.And the results have been stunning. A low-end gpu can outclass a high-end CPU However GPU's are limited in that jobs should be highly parallel .Otherwise the gain will be negative . Also GPU 's cannot handle branching and other control work .These should be dealt by the CPU itself. So a GPU can never replace a CPU.Also a GPU's computational power is limited by its video memory which determines the maximum array dimension.My computer has 256MB video memory and hence maximum dimension is 4096 X 4096 for a 2D array.But newer GPU's have upto 768 MB memory and upto 128 cores.

GPU libraries available for development

  • 1.Acclerator : a .NET based GPU library which effectively abstracts all low level GPU details

  • 2.BrookGPU : another C based GPU library and follows a "kernel" based approach

  • 3.CUDA(Compute Unified Device Architecture) provides a set of API's to allow a programmer to code for GPU in C.This also boasts of sc

  • 4.RapidMind Development Platform : C based and this can also be used to develop for PS3

  • 5. GPU Gems 2 from Nvidia is a book which has a whole section dedicated to GPGPU

Related Links