ABSTRACT

This chapter introduces the Graphics Processing Unit (GPU) architecture and all the concepts needed to understand how GPUs work and can be used to speed up the execution of some algorithms. First of all this chapter gives a brief history of the development of the graphics cards up to the point when they started being used in order to perform general purpose computations. Then the architecture of a GPU is illustrated. There are many fundamental differences between a GPU and a traditional processor. In order to benefit from the power of a GPU, a CUDA programmer needs to use threads. They have some particularities which enable the CUDA model to be efficient and scalable when some constraints are addressed.