ABSTRACT

General Purpose computations on Graphics Processing Unit (GPGPU) is a quickly growing area of using Graphics Processing Unit (GPU) for solving a wide variety of non-graphical problems. GPGPU uses the GPU for solving various complex problems in much less time than traditional solving that using the Central processing unit would require. When the evolution of GPUs led to the creation of programmable GPUs providing much more floating-point operations per second than traditional CPUs, the first attempts to use the GPU for not only graphical problems. OpenCL is an open and cross-platform standard for parallel computing on heterogeneous devices. Compute Unified Device Architecture (CUDA) is an NVidia Application Programming Interface and language for performing computations on NVidia GPUs. CUDA supports only NVidia GPUs but provides an easy start, has very good documentation and tools, and uses modified C++ to write code for the GPUs.