发表机构
University of Victoria(维多利亚大学)
机构由 AI 辅助整理,请以论文原文为准。AI 中文总结
本文提出部分Strassen算法,通过使用部分Strassen步骤在更短时间内完成矩阵乘法,内存占用小,三级版本比BLAS快20%,且随矩阵增大性能优于传统Strassen算法。
AI 中文摘要
我们提出了一种Strassen算法的新变体,称为部分Strassen算法,它使用一部分Strassen步骤,在比传统实现更短的时间内执行矩阵乘法。该算法所需的内存占用在单线程或多线程上下文中都可证明是小的。将深度为1、2和3的部分Strassen算法与BLAS矩阵乘法的数据进行比较,结果显示,三级部分Strassen算法能够以BLAS时间的80%执行矩阵乘法,而内存需求为BLAS的2.25倍,对于足够大的矩阵,理论上可改进75%。部分Strassen算法还与传统的Strassen算法实现进行了比较,结果表明,随着矩阵规模的增大,由于内存消耗减少,其性能更优。此外,还包含了一个用于任意深度和矩形矩阵乘法的部分Strassen算法的开源实现。
英文摘要
We present a novel variant of the Strassen algorithm called the Partial Strassen algorithm, which uses a fraction of the Strassen steps to perform matrix multiplication in less time than traditional implementations. The memory footprint required to implement this algorithm is provably small whether used with a single thread or in a multi-threaded context. Data comparing the Partial Strassen algorithm at depths one, two, and three with BLAS matrix multiplication show that the three-level Partial Strassen algorithm is able to perform matrix multiplication in $80\%$ the time of BLAS with $2.25$ times the memory requirement, with a theoretical improvement of $75\%$ for sufficiently large matrices. The Partial Strassen algorithm is also compared against an implementation of the traditional Strassen algorithm, and is shown to be more performant with increasing matrix size due to decreased memory consumption. An open source implementation of the Partial Strassen algorithm for arbitrary depth and rectangular matrix multiplication is also included.
Comments18 pages, 10 figures