Before you can read the parent note, you must own every symbol it throws at you. We build them here in order, each one leaning on the one before. Nothing is assumed.
The parent note keeps saying FP16, FP32, INT8, TF32. These are formats — recipes for storing one number using a fixed number of on/off switches (bits).
Look at the figure. Each bar is one number's "budget" of bits, split into three jobs:
The sign bit (slate, always exactly 1 bit) decides positive or negative: 0 means +, 1 means −. This is how every floating-point format stores a negative value — one dedicated switch at the very front.
Exponent bits (lavender) decide how big or small the number can get — the range.
Mantissa bits (mint) decide how many decimal places of detail — the precision.
Before the table, meet two of its entries properly:
Format
Layout (sign · exp · mantissa)
Total bits
What it buys
FP32
1 · 8 · 23
32
full range + full detail (the safe default)
FP16
1 · 5 · 10
16
half the memory, small range
BF16
1 · 8 · 7
16
FP32's range, coarse detail
TF32
1 · 8 · 10 (internal, 19)
19
FP32 range, FP16-ish detail
INT8
1 sign · 7 value (two's-complement)
8
whole numbers −128…127, 4× smaller than FP32
Keep this in your pocket — it powers the whole "Precision Modes" section of the parent, and links to 8.3.4-Mixed-precision-training and 8.4.2-Quantization-techniques.
The parent writes A, B, C, D and calls them "4×4 tiles" or "1024×1024 matrices". A matrix is simply a rectangle of numbers arranged in rows and columns.
In the figure, follow the red pointer to A[1][2] — row 1 (second row down), column 2 (third column across). One symbol, one cell. Once this clicks, C[i][j] in the parent is no longer scary — it is just "one cell of the output grid."
Read the formula out loud now: "C[i][j] equals the sum, as k goes from 0 to K−1, of A-in-row-i-column-k times B-in-row-k-column-j." Every symbol is now a thing you can point at in the picture.
The tiled loops in the parent step forward 4 (or 16) at a time. But what if K=1000, which is not a multiple of 4? The last chunk would run off the edge of the matrix.
The parent says a warp of 32 threads cooperates, split into groups. Two hardware words to define.
Numbers must also travel from slow memory to these engines — that path is the 6.2.8-Memory-hierarchy-in-GPUs, and it is why FP16's smaller size (section 1) matters for speed.
This is the vocabulary of the parent's performance math and of the 9.1.5-Roofline-model. Quick self-check on the parent's own numbers: 10243≈1.07×109 FMAs, and (1024/4)3=2563≈1.68×107 tile-ops, giving the ratio 43=64. Every piece of that is now a symbol you own.
Cover the right side and test yourself. If any answer surprises you, re-read its section.
What is a bit, and what do the sign, exponent, and mantissa bits each control?
A bit is one on/off switch; the sign bit sets positive/negative, exponent bits set the range, mantissa bits set the precision.
How does a floating-point format store a negative number?
With a dedicated sign bit at the front — 0 means +, 1 means −.
What is BF16's layout and why is it good for training?
1 sign + 8 exponent + 7 mantissa; it copies FP32's exponent so it reaches the same wide range, trading detail for range — ideal for gradients.
What range does INT8 cover and how are negatives stored?
−128 to +127, using 1 sign bit + 7 value bits in two's-complement.
What does the shape M×N mean for a matrix?
M rows going down, N columns going across.
What number does A[1][2] refer to (0-indexed)?
The entry in the second row, third column.
What is the difference between row-major and column-major storage?
Row-major lays out row 0 then row 1 (entry at i⋅cols+j); column-major lays out column 0 then column 1 (entry at j⋅rows+i).
In words, what does ∑k=0K−1 tell you to do?
Let k step through 0 to K−1, compute the term for each, and add them.
What is an FMA, and how many FLOPs is it?
A fused multiply-add, a⋅b+c; it counts as 2 FLOPs.
Write the formula for one output cell C[i][j].
C[i][j]=∑k=0K−1A[i][k]⋅B[k][j].
Why must the inner dimension K of A and B match?
It is the length of the row and column you slide along together; unmatched lengths cannot be paired.
In D=A×B+C, what job does C do?
It is the accumulator — it holds the running total so partial products can be added on.
Which properties actually make tiling correct?
Associativity of addition and distributivity of scalar multiplication over the k-sum — not matrix-multiply associativity, and matrix multiply is not commutative.
What is a partial tile and how is it handled?
An edge tile only partly filled with real data; you pad the missing cells with 0 (which contribute nothing) and ignore the extra output rows/columns.
Why do dimensions that are multiples of 8 or 16 run fastest?
They avoid partial tiles, so no hardware cycles are wasted on padded arithmetic.
What is the difference between FLOP and FLOPS?
FLOP is one operation (a job); FLOPS is operations per second (a rate).
Why do smaller formats like FP16 make Tensor Cores faster?
Fewer bits means more numbers fit on the chip and move through memory faster, while a wide FP32 accumulator preserves accuracy.
Recall Quick fire — the summation drill
Compute ∑k=02k2. ::: 0+1+4=5.
For 2×2 matrices, how many FMAs to compute C=A×B? ::: 2×2×2=8.