Strassen's Matrix Multiplication Algorithm Is Still Faster
Paolo D'Alberto

TL;DR
This paper introduces Matrix Flow, a Python tool for designing and executing fast matrix multiplication algorithms, demonstrating that Strassen's algorithm remains superior on modern CPUs and GPUs despite recent algorithmic advances.
Contribution
The paper presents Matrix Flow, a framework for automatic formulation and implementation of matrix multiplication algorithms, and provides empirical evidence that Strassen's algorithm outperforms newer algorithms on current hardware.
Findings
Strassen's algorithm remains the fastest for modern CPUs and GPUs.
Matrix Flow enables easy design and testing of matrix algorithms.
Integer computations in these algorithms are always correct.
Abstract
Recently, reinforcement algorithms discovered new algorithms that really jump-started a wave of excitements and a flourishing of publications. However, there is little on implementations, applications, and, especially, no absolute performance and, we show here they are not here to replace Strassen's original fast matrix multiplication yet. We present Matrix Flow, this is a simple Python project for the automatic formulation, design, implementation, code generation, and execution of fast matrix multiplication algorithms for CPUs, using BLAS interface GPUs, and in the future other accelerators. We shall not play with module-2 (Z2) algorithms and, for simplicity, we present only square double-precision matrices. By means of factorizing the operand matrices we can express many algorithms and prove them correct. These algorithms are represented by Data Flows and matrix data partitions: a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Interconnection Networks and Systems · Embedded Systems Design Techniques
