How Does a GPU Differ From a CPU?

A modern System on Chip (SoC) often integrates both a Central Processing Unit (CPU) and a Graphics Processor Unit (GPU). They are designed differently depending on the type of data set they are more likely to be processing.

CPUs are optimised to execute large, heavily branched tasks on a few pieces of data at a time. A thread running on a CPU is often unique and is executed on its own, generally independent of all other threads. Any given processing element will process in just a single thread. Typical numbers of threads for a program on a CPU is commonly one to eight, up to a few tens at any period of time.

GPUs are optimised to work on the principle that the same piece of code will be executed in multiple threads, often numbering into the millions, to handle the large screen resolutions of today’s devices. These threads differ only in input and normally follow the exact same execution steps.