  The future of computation is the Graphical Processing Unit, i.e. the GPU. The
promise that the graphics cards have shown in the field of image processing and
accelerated rendering of 3D scenes, and the computational capability that these
GPUs possess, they are developing into great parallel computing units. It is
quite simple to program a graphics processor to perform general parallel tasks.
But after understanding the various architectural aspects of the graphics
processor, it can be used to perform other taxing tasks as well. In this paper,
we will show how CUDA can fully utilize the tremendous power of these GPUs.
CUDA is NVIDIA's parallel computing architecture. It enables dramatic increases
in computing performance, by harnessing the power of the GPU. This paper talks
about CUDA and its architecture. It takes us through a comparison of CUDA C/C++
with other parallel programming languages like OpenCL and DirectCompute. The
paper also lists out the common myths about CUDA and how the future seems to be
promising for CUDA.
