Before you can read the parent note, you need to own every word and symbol it throws at you. This page builds them one at a time, from nothing. Read top to bottom — each block only uses ideas already defined above it.
If you put many desks in one room, you have many cores. If all the desks are identical, that room is homogeneous. If some desks are big-and-clever and others are small-and-many, the room is heterogeneous — that word is literally Greek for "different kinds".
Figure s01 below draws exactly this contrast: on the left, one large blue desk = the CPU (a single powerful worker); on the right, a grid of small green desks = the GPU (many simple workers). As you read the next callout, look at the two blocks and notice that the blue block is one box while the green block is twenty-four — that size-vs-count trade-off is the whole picture.
A GPU cannot touch data that sits in the CPU's memory. The data must be copied over a wire first. That wire is slow, and the copy costs time.
Same master equation, new names: time to move the box = box size ÷ pipe width = D/B.
Figure s02 below makes the round trip concrete. The blue box (CPU memory) and green box (GPU memory) sit at the two ends of a grey pipe of width B. The yellow arrow is the send leg (CPU→GPU) costing D/B; the red arrow underneath is the return leg (GPU→CPU) costing another D/B. Follow both arrows and you literally count the two trips that add up to the tax written at the bottom.
Now the punchline. Two chips race, but only the fast chip pays the transfer tax. When is paying it worth it?
Figure s03 below plots that ratio against problem size n. The green curve (matrix × matrix) climbs forever because its intensity grows like n; the red curve (vector add) stays flat and low. The yellow dashed line is the break-even threshold from the transfer tax — you only "win" in the shaded green region above the line, which the green curve enters and the red curve never reaches. That single picture explains why some workloads belong on the GPU and others never do.
Amdahl's Law needs one more idea: a program is part "must-be-sequential" and part "can-be-parallel".
Now we define the last symbol the ceiling needs — the normalized transfer overhead.
Figure s04 below shows the payoff. Each curve is the overall speedup as the GPU gets faster (moving right). Notice every curve flattens into a horizontal ceiling — the dotted line of the same colour — no matter how far right you go. A small serial fraction (green, fs=0.05) has a high ceiling; a large one (red, fs=0.5) is capped low. That flattening is Amdahl's Law.
Each foundation on the left feeds a formula in the middle, and all of them feed the parent topic on the right: Heterogeneous Computing. When you also want to express these splits in code, read Parallel Programming Models.
Cover the right-hand side and see if you can answer each before revealing it.
What is the difference between homogeneous and heterogeneous cores?
Homogeneous = all identical cores/instruction sets; heterogeneous = two or more different kinds of cores, each tuned for different work.
What is a FLOP versus FLOPS?
A FLOP is one floating-point operation (a count of work); FLOPS is FLOPs per second (a speed).
State the master equation linking work, speed and time.
T=W/F — time equals work divided by processing rate; its units are FLOP ÷ (FLOP/s) = seconds.
Why does the round-trip transfer time have a factor of 2, and when is it only 1?
Data travels CPU→GPU and then GPU→CPU (two trips → 2D/B); if the answer never comes back (one-way), it is only D/B.
What is overlapping and how does it reduce the effective tax?
Running the copy and the GPU compute at the same time so transfer hides behind compute; when compute is longer, the effective transfer tax drops toward zero.
Define arithmetic intensity and say what high vs low means.
W/D (FLOPs per byte); high = lots of compute per byte moved (worth offloading), low = mostly data movement (not worth it).
Why is fs+fp=1?
They are the serial and parallel slices of one whole program, so their fractions sum to the whole (1).
What is txfer and why can it sit next to fs?
The transfer time divided by the original run time — a dimensionless fraction, so it matches the units of fs and fp.
What caps the speedup even with an infinitely fast GPU?
The fixed costs that don't shrink: the serial fraction plus normalized transfer overhead, giving Smax=1/(fs+txfer).
What does performance-per-watt measure and why does it justify accelerators?
FLOPS per watt of electricity; specialized hardware gets far more compute per unit energy, which is the real budget in phones and data centres.