A GPU (Graphical Process Unit), has a massively parallel architecture compared to a conventional CPU. This design originally intended to handle computation only for computer graphics (OpenGL/Direct3D), was adapted with programming languages such as CUDA or OpenCL, to perform computation in applications traditionally handled by CPU.