This document discusses graphics processing units (GPUs) and their evolution from specialized hardware for graphics to general-purpose parallel processors. It covers key aspects of GPU architecture like their massively parallel threading model, SIMD execution, memory hierarchy, and how programming models like CUDA map computations to large numbers of threads grouped into blocks. Examples of GPU hardware like Nvidia's Fermi architecture are also summarized.