Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation 2015
DOI: 10.1145/2737924.2738003
|View full text |Cite
|
Sign up to set email alerts
|

Loop and data transformations for sparse matrix code

Abstract: This paper introduces three new compiler transformations for representing and transforming sparse matrix computations and their data representations. In cooperation with run-time inspection, our compiler derives transformed matrix representations and associated transformed code to implement a variety of representations targeting different architecture platforms. This systematic approach to combining code and data transformations on sparse computations, which extends a polyhedral transformation and code generat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
48
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
3
3
1

Relationship

0
7

Authors

Journals

citations
Cited by 75 publications
(48 citation statements)
references
References 54 publications
0
48
0
Order By: Relevance
“…As mentioned above, these approaches focus on dense loops over dense arrays, so are not applicable to our domain. There has been work done in the past to generalize the loop-based model to handle non-affine loop bounds and subscripts using symbolic expressions [23,34], and to handle sparse matrices and arrays [30][31][32]35], but these approaches still only target loops, and hence do not generalize to the recursive constructs we consider. To break down the transformations a little more concretely, first, the method outer was strip mined (Section 5.3.4) to break it into two loops, outer1 (at line 1) and outer2 (at line 16); outer2 performs groups of 4 iterations from outer1.…”
Section: Other Related Workmentioning
confidence: 99%
“…As mentioned above, these approaches focus on dense loops over dense arrays, so are not applicable to our domain. There has been work done in the past to generalize the loop-based model to handle non-affine loop bounds and subscripts using symbolic expressions [23,34], and to handle sparse matrices and arrays [30][31][32]35], but these approaches still only target loops, and hence do not generalize to the recursive constructs we consider. To break down the transformations a little more concretely, first, the method outer was strip mined (Section 5.3.4) to break it into two loops, outer1 (at line 1) and outer2 (at line 16); outer2 performs groups of 4 iterations from outer1.…”
Section: Other Related Workmentioning
confidence: 99%
“…Programmers may use different formats to store a sparse matrix, among which we consider four representations: CSR, Block CSR (BCSR), Diagonal (DIA) and ELLPACK (ELL) [27]. Our experiment in this subsection target the benchmarks used in [24], with our own modifications to suit the syntactic constraints of our framework. We first consider the CSR representation.…”
Section: Spmvmentioning
confidence: 99%
“…We first consider the CSR representation. The other three representations can be modeled with a make-dense transformation, as proposed by [24], followed by a series of loop and data transformations. BCSR is the blocked version of CSR, its parallel version is the same as that of CSR, after tiling with PPCG.…”
Section: Spmvmentioning
confidence: 99%
See 2 more Smart Citations