Graphics Processors
What Are Graphics Processors?
Graphics processors are integrated circuits designed to accelerate the creation and output of images to a display device. Often referred to as GPUs (graphics processing units), they perform the mathematical operations required to transform scene geometry into pixels, applying shading, textures, and lighting effects at high speed. Their architecture departs fundamentally from that of general-purpose processors: rather than a small number of high-clock-speed cores optimized for sequential tasks, a graphics processor contains thousands of narrow, lower-clock-speed execution units arranged to process many data elements in parallel.
The hardware concept emerged from the arcade and home computer markets of the early 1980s, when dedicated chips like the Commodore 64's VIC-II and the Atari CTIA offloaded sprite and background rendering from the main CPU. The modern programmable graphics processor arrived in the late 1990s with the introduction of transform-and-lighting hardware and, shortly after, shader processors that allowed developers to supply custom programs running directly on the chip. This evolution toward programmability is documented in IEEE Xplore analyses of GPU instruction set architectures, which trace how each generation added more flexible compute capabilities alongside traditional rasterization.
Core Architecture
A graphics processor is organized around a hierarchy of parallel execution units. At the top level, the chip is partitioned into several streaming multiprocessors (in NVIDIA terminology) or compute units (in AMD terminology), each containing tens to hundreds of simple shader cores sharing a local register file and a warp-level instruction scheduler. All cores within a multiprocessor execute the same instruction on different data elements each cycle, a model known as single-instruction, multiple-thread (SIMT) execution. The memory subsystem is layered: a large off-chip GDDR or HBM memory pool provides high bandwidth, while on-chip L1 and L2 caches and shared memory banks reduce latency for frequently accessed data. Achieving good performance requires careful management of thread occupancy and memory access coalescing, as analyzed in IEEE research on GPU parallel computing architectures.
Shader Programming Model
Graphics processors became general-purpose compute platforms when vendors exposed their shader cores through programming interfaces beyond the graphics pipeline. NVIDIA's CUDA, released in 2007, allows code written in C or C++ to run directly on the GPU's compute cores. OpenCL provides a vendor-neutral alternative. In both models, the programmer launches kernels: functions that execute across a grid of threads organized into blocks or work groups. The runtime distributes these blocks across the available multiprocessors, hiding latency through fine-grained context switching among warps. Higher-level frameworks including Vulkan and Direct3D 12 expose a lower-overhead path to graphics rendering, while libraries such as cuBLAS and cuDNN abstract matrix and neural network operations for scientific and AI workloads. The NVIDIA CUDA developer platform documents the full software stack spanning these use cases.
Performance Characteristics
The primary performance metric for a graphics processor is throughput, measured in floating-point operations per second (FLOPS) at single or double precision. Memory bandwidth, typically in the hundreds of gigabytes per second for high-end devices, is equally important because many kernels are bandwidth-bound rather than compute-bound. Power consumption and the resulting thermal envelope constrain how densely execution units can be packed; desktop and data-center GPUs differ substantially from mobile variants in their power budgets. Newer architectures add specialized units alongside general shader cores: ray-tracing acceleration hardware handles intersection tests for photorealistic rendering, while tensor cores handle mixed-precision matrix products central to neural network training.
Applications
Graphics processors have applications in a wide range of fields, including:
- Real-time 3D rendering for games and simulation
- Deep learning training and inference
- Scientific computing and numerical simulation
- Medical image processing and reconstruction
- Video transcoding and post-production visual effects
- Autonomous vehicle perception pipelines