The matmul we're optimising
Multiply where is , is , is . Each output element is a dot product:
For a square case: outputs, each costing multiply-adds. FLOPs total, but only bytes of input/output. The arithmetic intensity grows linearly with — matmul is the textbook compute-dense workload, if you don't blow the memory hierarchy. Naive matmul does blow it. That's what tiling fixes.
