New Bounds for Matrix Multiplication: From Alpha to Omega
epubs.siam.org
epubs.siam.org
I wonder if finding the answer to that will clue someone in to what the optimal solution is, by pointing to some hidden structure to the problem that we have all missed.
The more advanced algorithms than Strassen's are even worse in terms of the cutover point, and are never seriously considered.
The hope is that these small improvements will lead to new insights that will then lead to big improvements. I doubt how matrix multiplication will be done will really change regardless of these theoretical results, unless something really groundbreaking and shocking is discovered.
It's all relatively pretty in the grand scheme of things.
That smells a little bit like a loop unrolling and/or locality improvement to me, You can often beat a theoretical algorithmic improvement with a practical one in such situations. And if you do a little bit of both you hopefully end up with something that's faster than the current most practical implementation.
As it stands right now, it is actually better to have a slower algorithm that uses the local memory more efficiently.
Imagine an algorithm that re-arranges a list into a sqrt(N) by sqrt(N) grid, and does O(num_columns^2) work for each row.
New breakthrough brings matrix multiplication closer to ideal - https://news.ycombinator.com/item?id=39630759 - March 2024 (4 comments)
on the small side even optimal (3x3)(3x3) matmul is unknown more precisely than "between 19 and 23" - with only tiny progress lately in ruling out some symmetrical solutions (https://arxiv.org/html/2402.01011v1)
There should be an O notation which takes into account everything - various kinds of memory latencies, speed of logic operations, .... Obviously we have wall clock or total energy used.
O notation is useful as-is because it simplifies an algorithm down to the bare bones. If such simplification doesn't capture what is important to you, you need a more complex model.
The folks designing GPUs use multiple different such models, ranging from the simple, inaccurate, understandable and fast; to the obnoxiously detailed, precise, abstruse and slow.
Not one model will ever have all the desirable properties, because they are in direct contradiction.