Sparse Matrix Code Dependence Analysis Simplification at Compile Time
Mahdi Soltan Mohammadi, Kazem Cheshmi, Ganesh Gopalakrishnan, Mary, Hall, Maryam Mehri Dehnavi, Anand Venkat, Tomofumi Yuki, Michelle Mills, Strout

TL;DR
This paper introduces a compile-time dependence analysis method for sparse matrix codes that leverages index array properties and SMT solvers to reduce runtime analysis, improving efficiency in parallelization and verification tasks.
Contribution
It formulates array dependence analysis using index array properties as constraints and develops an algorithm to simplify dependences, enabling more effective compile-time analysis.
Findings
Reduces runtime dependence analysis in sparse matrix kernels.
Uses SMT solvers to determine unsatisfiable dependences.
Simplifies remaining dependences through equality and subset relationship detection.
Abstract
Analyzing array-based computations to determine data dependences is useful for many applications including automatic parallelization, race detection, computation and communication overlap, verification, and shape analysis. For sparse matrix codes, array data dependence analysis is made more difficult by the use of index arrays that make it possible to store only the nonzero entries of the matrix (e.g., in A[B[i]], B is an index array). Here, dependence analysis is often stymied by such indirect array accesses due to the values of the index array not being available at compile time. Consequently, many dependences cannot be proven unsatisfiable or determined until runtime. Nonetheless, index arrays in sparse matrix codes often have properties such as monotonicity of index array elements that can be exploited to reduce the amount of runtime analysis needed. In this paper, we contribute a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsInterconnection Networks and Systems · Parallel Computing and Optimization Techniques · VLSI and Analog Circuit Testing
