Graphics Processing Units

Technology — James William Steven Parker

Graphics Processing Units are massively parallel processors originally developed to accelerate computer graphics but now widely used for numerical computing, scientific simulation, artificial intelligence and other workloads containing large amounts of data-parallel computation. A Graphics Processing Unit, or GPU, contains many arithmetic execution resources designed to perform large numbers of similar operations concurrently. Modern GPUs are programmable and can execute general-purpose compute kernels in addition to rendering graphics. Their architecture is optimised for throughput rather than the low-latency execution of arbitrary individual instruction streams, making them particularly effective when the same operation can be applied independently across many data elements.

Traditional graphics rendering involves many computations that can be performed in parallel. Vertices can be transformed independently, pixels or fragments can be processed in large groups, and textures can be sampled concurrently. GPU architectures evolved to exploit this structure by providing large numbers of arithmetic resources and specialised graphics hardware. Modern programmable graphics pipelines include stages for vertex processing, primitive processing, rasterisation, fragment or pixel shading and output operations. Compute APIs subsequently made GPU resources accessible for non-graphics workloads, allowing applications to use GPU parallelism for scientific calculations, image processing, simulations and machine learning.

GPU architectures differ substantially from CPU architectures. CPUs generally devote significant silicon to sophisticated control flow, large caches, branch prediction and low-latency execution, whereas GPUs devote more resources to parallel arithmetic throughput. GPU threads are commonly organised into groups that execute related instructions together according to an architecture-specific execution model. If threads in a group follow divergent control paths, execution efficiency can decline because different paths may need to be processed separately. GPUs are therefore particularly effective for algorithms with large numbers of similar operations and relatively regular data access patterns. Algorithms dominated by irregular branching or serial dependencies may benefit less from GPU acceleration.

Graphics rendering requires specialised operations including transformations, rasterisation, texture filtering, blending and depth testing. GPUs also provide programmable shader stages that allow developers to define sophisticated visual effects. Physically based rendering, lighting calculations, shadows, particle systems and post-processing can all exploit GPU parallelism. Modern GPUs incorporate dedicated or specialised hardware for operations such as ray traversal, tensor calculations and video encoding or decoding. These additions reflect the expansion of GPUs beyond conventional raster graphics into broader visual computing and accelerated computation.

GPUs are heavily used for machine learning because neural-network operations often involve large matrix and tensor computations that can be parallelised. Modern GPUs may include specialised matrix or tensor execution hardware alongside general arithmetic resources. Machine-learning frameworks divide workloads into operations that can be executed on GPU hardware and manage data transfers between CPU memory and GPU-accessible memory. GPU memory bandwidth is often critical because large models and datasets require substantial movement of parameters and activations. A GPU can therefore have enormous theoretical arithmetic throughput while performing poorly on a workload that cannot keep its execution units supplied with data efficiently.

GPU memory architecture is central to performance. Dedicated high-bandwidth memory can provide enormous bandwidth for parallel workloads, while caches and shared or local memory structures reduce the cost of repeatedly accessing data. Data transfers between CPU and GPU memory can introduce substantial latency, particularly when large datasets must cross an external interconnect. Techniques such as batching, data reuse and asynchronous execution can reduce these costs. The distinction between compute throughput and memory bandwidth is important because many workloads are memory-bound rather than compute-bound. GPU optimisation therefore involves both arithmetic parallelism and careful management of memory access patterns.

GPUs differ from Central Processing Units and specialised accelerators in their design priorities. A CPU is generally better suited to complex control flow, operating-system tasks and latency-sensitive general-purpose execution. A GPU is suited to high-throughput parallel workloads. A Tensor Processing Unit is specifically designed around tensor operations used in machine learning, while a Digital Signal Processor is optimised for repeated numerical operations on signal streams. These categories overlap in modern hardware, and a GPU may contain dedicated AI or signal-processing features. Nevertheless, the distinctions remain useful when analysing architectural intent, programming models and expected workload characteristics.

GPU development has transformed from fixed-function graphics acceleration to highly programmable heterogeneous computing. Current systems combine rasterisation, compute processing, machine-learning acceleration, video processing and increasingly sophisticated ray-tracing capabilities. Limitations include power consumption, memory capacity, programming complexity and reduced efficiency for highly serial workloads. GPU programming also requires algorithms to expose sufficient parallelism and manage memory efficiently. Despite these constraints, GPUs are among the most important accelerators in modern computing because their architecture can process enormous quantities of independent numerical work simultaneously, making them valuable far beyond their original graphics role.