Computer Science > Numerical Analysis
[Submitted on 2 Jul 2015 (this version), latest version 25 Jul 2016 (v2)]
Title:Improving the numerical stability of fast matrix multiplication algorithms
View PDFAbstract:Fast algorithms for matrix multiplication, or those that perform asymptotically fewer scalar operations than the classical algorithm, have been considered primarily of theoretical interest. Aside from Strassen's original algorithm, few fast algorithms have been efficiently implemented or used in practical applications. However, there exist many practical alternatives to Strassen's algorithm with varying performance and numerical properties. While fast algorithms are known to be numerically stable, their error bounds are slightly weaker than the classical algorithm.
We argue in this paper that the numerical sacrifice of fast algorithms, particularly for the typical use cases of practical algorithms, is not prohibitive, and we explore ways to improve the accuracy both theoretically and empirically. The numerical accuracy of fast matrix multiplication depends on properties of the algorithm and of the input matrices, and we consider both contributions independently. We generalize and tighten previous error analyses of fast algorithms, compare the properties among the class of known practical fast algorithms, and discuss algorithmic techniques for improving the error guarantees. We also present means for reducing the numerical inaccuracies generated by anomalous input matrices using diagonal scaling matrices. Finally, we include empirical results that test the various improvement techniques, in terms of both their numerical accuracy and their performance.
Submission history
From: Alex Druinsky [view email][v1] Thu, 2 Jul 2015 18:42:28 UTC (669 KB)
[v2] Mon, 25 Jul 2016 01:55:33 UTC (198 KB)
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.