Sympiler: Transforming Sparse Matrix Codes by Decoupling Symbolic Analysis

Kazem Cheshmi, S. Kamil, M. Strout, M. Dehnavi
{"title":"Sympiler: Transforming Sparse Matrix Codes by Decoupling Symbolic Analysis","authors":"Kazem Cheshmi, S. Kamil, M. Strout, M. Dehnavi","doi":"10.1145/3126908.3126936","DOIUrl":null,"url":null,"abstract":"Sympiler is a domain-specific code generator that optimizes sparse matrix computations by decoupling the symbolic analysis phase from the numerical manipulation stage in sparse codes. The computation patterns in sparse numerical methods are guided by the input sparsity structure and the sparse algorithm itself. In many real-world simulations, the sparsity pattern changes little or not at all. Sympiler takes advantage of these properties to symbolically analyze sparse codes at compile time and to apply inspector-guided transformations that enable applying low-level transformations to sparse codes. As a result, the Sympiler-generated code outperforms highly-optimized matrix factorization codes from commonly-used specialized libraries, obtaining average speedups over Eigen and CHOLMOD of $3.8 \\times$ and $1.5 \\times$ respectively. CCS Concepts • Software and its engineering $\\rightarrow$ Source code generation; • Computing methodologies $\\rightarrow$ Parallel programming languages;","PeriodicalId":204241,"journal":{"name":"SC17: International Conference for High Performance Computing, Networking, Storage and Analysis","volume":"50 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"43","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SC17: International Conference for High Performance Computing, Networking, Storage and Analysis","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3126908.3126936","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 43

Abstract

Sympiler is a domain-specific code generator that optimizes sparse matrix computations by decoupling the symbolic analysis phase from the numerical manipulation stage in sparse codes. The computation patterns in sparse numerical methods are guided by the input sparsity structure and the sparse algorithm itself. In many real-world simulations, the sparsity pattern changes little or not at all. Sympiler takes advantage of these properties to symbolically analyze sparse codes at compile time and to apply inspector-guided transformations that enable applying low-level transformations to sparse codes. As a result, the Sympiler-generated code outperforms highly-optimized matrix factorization codes from commonly-used specialized libraries, obtaining average speedups over Eigen and CHOLMOD of $3.8 \times$ and $1.5 \times$ respectively. CCS Concepts • Software and its engineering $\rightarrow$ Source code generation; • Computing methodologies $\rightarrow$ Parallel programming languages;
用解耦符号分析变换稀疏矩阵码
Sympiler是一个特定于领域的代码生成器,它通过将稀疏代码中的符号分析阶段与数值操作阶段解耦来优化稀疏矩阵计算。稀疏数值方法的计算模式受输入稀疏性结构和稀疏算法本身的指导。在许多真实世界的模拟中,稀疏模式变化很小或根本没有变化。Sympiler利用这些属性在编译时象征性地分析稀疏代码,并应用检查器引导的转换,从而能够对稀疏代码应用低级转换。因此,symiler生成的代码优于来自常用专用库的高度优化的矩阵分解代码,比Eigen和CHOLMOD的平均速度分别提高了3.8倍和1.5倍。CCS概念•软件及其工程$\右划$源代码生成;•计算方法;并行编程语言;
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信