| The math looks suspicious to me, or at least how it is presented. If, as stated, accessing one register requires ~0.3 ns and available registers sum up to ~2560 B,
while accessing RAM requires ~80 ns and available RAM is ~32 GiB,
then it means that memory access time is O(N^1/3) where N is the memory size. Thus accessing the whole N bytes of memory of a certain kind (registers, or L1/L2/L3 cache, or RAM)
takes N * O(N^1/3) = O(N^4/3). One could argue that the title "Memory access is O(N^1/3)" refers to memory access time,
but that contradicts the very article's body,
which explains in detail "in 2x time you can access 8x as much memory" both in text and with a diagram. Such statement would require that accessing the whole N bytes of memory of a certain kind requires O(N^1/3) time,
while the measurements themselves produce a very different estimate:
accessing the whole N bytes of memory of a certain kind requires O(N^4/3) time, not O(N^1/3) |
I read "in 2x time you can access 8x as much memory" as "in 2x time you can access any byte in 8x as much memory", not "in 2x time you can access the entirety of 8x as much memory". Though I agree that the wording of that line is bad.
In normal big-O notation, accessing N bytes of memory is already O(N), and I think it's clear from context that the author is not claiming that you can access N bytes of memory in less time than O(N).