Back

general-purpose graphics processing unit (GPGPU)

General-Purpose Graphics Processing Unit (GPGPU) refers to the use of a Graphics Processing Unit (GPU) to perform computations typically conducted by a Central Processing Unit (CPU). This trend of using GPUs for non-specialized computations, in addition to their traditional purpose of rendering images, is becoming increasingly common. GPGPU acceleration is a method of accelerated computing where compute-intensive portions of an application are assigned to the GPU, providing a supercomputing level of parallelism. While highly complex calculations are computed in the GPU, sequential calculations can be performed in parallel in the CPU[1].


GPUs are conventionally used for generating computer graphics, but the idea behind GPGPU is to leverage the power of GPUs to carry out tasks that were traditionally done by CPUs. This combined use of these two kinds of processors is sometimes referred to as heterogeneous computing and is a key factor in a lot of technological breakthroughs, such as the development of artificial intelligence through machine learning and deep learning[6].


GPGPUs excel at parallel computing due to their large number of cores, which operate at lower frequencies than CPUs, but are more suited for data that's in graphical form. Groundbreaking scientific research can benefit greatly from GPGPUs, and many high-performance computing (HPC) servers utilize a large number of GPGPUs to reach their computational goals[6].


However, not all algorithms can have theoretical speedup on GPUs, and programming for GPGPU can be challenging. The architecture is still developing fast, and not all applications can easily run on GPUs[4]. For example, GPGPUs have a fundamental disadvantage over Tensor Processing Units (TPUs) for certain workloads, such as deep neural networks (DNNs), due to the high overhead in performance, area, and energy due to heavy multithreading which is unnecessary for DNNs[9].


In conclusion, GPGPU computing offers significant advantages in terms of parallel processing power and speed for certain types of computations, particularly those involving large datasets and requiring high levels of parallelism. However, it also presents challenges in terms of programming complexity and suitability for certain types of algorithms. As the field continues to evolve, we can expect further developments and improvements in GPGPU technology and its applications.


Citations:

[1] https://www.heavy.ai/technical-glossary/gpgpu

[2] https://developer.nvidia.com/gpugems/gpugems2/part-iv-general-purpose-computation-gpus-primer

[3] https://manifold.net/doc/mfd9/gpgpu.htm

[4] https://www.cs.rochester.edu/~kshen/csc258-spring2011/lectures/student_Tang.pdf

[5] https://www.cdw.com/content/cdw/en/articles/hardware/cpu-vs-gpu.html

[6] https://www.gigabyte.com/Glossary/gpgpu

[7] http://class.ece.iastate.edu/tyagi/cpre581/papers/HPCA13PowerGPGPU.pdf

[8] https://stackoverflow.com/questions/124222/what-are-the-advantages-and-disadvantages-of-gpgpu-general-purpose-gpu-develop

[9] https://www.sigarch.org/why-the-gpgpu-is-less-efficient-than-the-tpu-for-dnns/

[10] https://www.intel.com/content/www/us/en/products/docs/processors/cpu-vs-gpu.html

[11] https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units

[12] https://arxiv.org/ftp/arxiv/papers/1408/1408.6923.pdf

[13] https://forums.developer.nvidia.com/t/gpgpu-vs-grid-computing-with-cpus-what-advantages-does-gpgpu-have/711

[14] https://www.weka.io/learn/gpu/what-is-a-gpu/

[15] https://www.techtarget.com/searchvirtualdesktop/definition/GPU-graphics-processing-unit

[16] https://mocalabucm.github.io/gpgpu2024/

[17] https://phoenixnap.com/blog/what-is-gpu-computing

[18] https://www.reddit.com/r/Windows10/comments/1abhpoi/does_hardware_accelerated_gpu_scheduling_have_any/

[19] https://www.techopedia.com/definition/32894/general-purpose-graphics-processing-unit-gpgpu

[20] https://www.4tu.nl/nirict/Projects/All_projects/GPGPU%20Applications/

[21] https://www.run.ai/guides/multi-gpu/cpu-vs-gpu

[22] https://openmetal.io/docs/product-guides/private-cloud/tpu-vs-gpu-pros-and-cons/

[23] https://study.com/academy/lesson/gpgpu-definition-differences-example.html

[24] https://www.pcmag.com/encyclopedia/term/gpgpu

[25] https://gpgpuarch.org/en/basic/basic/

Share: