AdvancedNumeric answer
Walking a matrix through the cache · Part 3 of 3
A 1,024 × 1,024 matrix of float64 is stored row-major (C order), starting on a cache-line boundary. A cache line is 64 bytes, and at the start none of the matrix is cached. The cache holds 512 lines, far fewer than the matrix needs, and evicts the least recently used line.
You keep the column-wise order but process eight adjacent columns together, walking down the rows and adding 8 values per row into 8 running sums. How many cache lines are loaded?
Answer with a number. Fractions, powers and expressions like 23/6 or C(52,5) are read correctly in practice.
The worked solution is in Premium
The answer, the full working and the one idea to take away – for this and all 1,322 questions in the bank. Answer it in practice and your working is marked, with a known mistake named when you make one.
Learn the method
More systems and low latency questions
- AVX-512 registers are 512 bits wide. How many float64 values does one hold?Foundation
- A cache line is 64 bytes. How many 32-bit integers fit in one?Foundation
- A single scan reads 1 GB from main memory at a sustained 20 GB/s.Foundation
- Traversing a linked list and traversing an array are both O(n).Applied
- An L1 data cache holds 32 KB. How many float64 values fit in it?Applied
- A loop executes 10⁸ data-dependent branches, half of them mispredicted, each…Applied