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 Directed Acyclic Graph. We show that Strassen's original algorithm is still the top choice even for modern GPUs. We also address error analysis in double precision, because integer computations are correct, always
翻译:近期,强化学习算法发现了新算法,确实引发了学术界的兴奋浪潮和大量出版物涌现。然而,这些算法在实现、应用方面仍鲜有成果,尤其缺乏绝对性能表现,我们在此表明,它们目前尚无法取代Strassen原始快速矩阵乘法算法。我们提出Matrix Flow——这是一个简洁的Python项目,用于CPU上快速矩阵乘法算法的自动公式化、设计、实现、代码生成与执行,并支持使用BLAS接口的GPU,未来还将拓展至其他加速器。我们暂不涉及模2(Z2)算法,为简明起见,仅展示方形双精度矩阵。通过分解操作数矩阵,我们能够表达多种算法并验证其正确性。这些算法由数据流和矩阵数据分区表示,即一个有向无环图。我们证明,即使在现代GPU上,Strassen原始算法依然是首选方案。此外,我们还分析了双精度的误差问题,因为整数计算始终是正确的。