Sympiler: transforming sparse matrix codes by decoupling symbolic analysis

Sympiler: transforming sparse matrix codes by decoupling symbolic analysis
复制标题

Sympiler:通过解耦符号分析来变换稀疏矩阵码

DOI:
10.1145/3126908.3126936
复制
发表时间:
2017
期刊:
Storage and Analysis
影响因子:
--
通讯作者:
Dehnavi, Maryam Mehri
Dehnavi, Maryam Mehri
中科院分区:
--
文献类型:
--
作者:
Cheshmi, Kazem;Kamil, Shoaib;Strout, Michelle Mills;Dehnavi, Maryam Mehri

文献摘要

被引文献

相似文献

Sympiler是一个特定于领域的代码生成器,它通过将稀疏代码中的符号分析阶段与数值操作阶段解耦来优化稀疏矩阵计算。稀疏数值方法的计算模式受输入稀疏性结构和稀疏算法本身的指导。在许多真实世界的模拟中,稀疏模式变化很小或根本没有变化。Sympiler利用这些属性在编译时象征性地分析稀疏代码,并应用检查器引导的转换,从而能够对稀疏代码应用低级转换。因此,symiler生成的代码优于来自常用专用库的高度优化的矩阵分解代码,比Eigen和CHOLMOD的平均速度分别提高3.8倍和1.5倍。
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× and 1.5× respectively.