Comparisons

Two things routinely conflated, put side by side. Neither column is the winner — what decides is the workload and the machine.

CPU vs GPU

Latency-optimized versus throughput-optimized. A CPU spends transistors on making one thread fast — speculation, big caches, deep out-of-order machinery. A GPU spends them on running thousands of lanes of regular work at once, and hides latency with parallelism instead of prediction.

Strengths

Fast on serial, branchy, irregular and latency-sensitive work

Costs

Limited parallelism; expensive per unit of throughput

Use when

General computation, control-heavy logic, low-latency response

Strengths

Enormous throughput on wide, regular, arithmetic-heavy work

Costs

Transfer cost, divergence penalties, and uselessness on serial work

Use when

Dense linear algebra, graphics, ML, image and signal processing

DimensionCPUGPU
Hides latency bySpeculation, caches, out-of-order executionMassive thread parallelism
Branchy codeHandled well by the predictorDivergent lanes serialise
Data must moveNoUsually yes, and it often dominates
Good at small workYesNo — launch and transfer overheads swamp it