What is GPU Computing?
GPU computing is the use of a GPU to do general purpose scientific and engineering computing. Its introduction opened new doors in the areas of research and science.
Due to their massive-parallel architecture, using GPUs enables the completion of computationally intensive assignments much faster compared with conventional CPUs.
This is why GPU computing has enormous potential - particularly in areas where data and compute-intensive basic research requires the processing of large volumes of measurement data.
In hybrid CPU-GPU systems, CPUs and GPUs are used in parallel compared to a heterogeneous co-processing computing model. Computationally-intensive parts which can be processed in a massive-parallel manner are accelerated by the GPU in order to benefit from their high computing performance while the CPU – among other tasks – works on sequential algorithms. Overall, the application runs faster and the sharing of tasks makes processing computationally-intensive algorithms very efficiently. The performance advantage of graphics processing units makes this technology particularly interesting for scientific applications.
The technology of GPU computing is fairly young. GPU computing was launched more than a decade ago when developers started to harness Graphics Processing Units (GPUs) to Central Processing Units (CPUs) for computationally and data-intensive tasks. At the turn of the millennium, computer scientists along with researchers in fields such as medical imaging recognized the huge potential of using graphics processing units in High Performance Computing (HPC) for general purposes. The term GPGPU ("General Purpose Computing on
GPUs") was quickly established.
In 2006/2007, NVIDIA developed the CUDA™ technology. It is the only C programming environment which harnesses the power of the graphics processing unit, thus enabling faster and more cost-efficient parallel computations.
Though the technology is still young, rapid progress has already been made in R&D since discovering that graphics processing units are able to boost a range of scientific applications due to their excellent floating point performance.