Sparse Matrix Code Dependence Analysis Simplification at Compile Time

07/27/2018
by   Mahdi Soltan Mohammadi, et al.
0

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 formulation of array data dependence analysis that includes encoding index array properties as universally quantified constraints. This makes it possible to leverage existing SMT solvers to determine whether such dependences are unsatisfiable and significantly reduces the number of dependences that require runtime analysis in a set of eight sparse matrix kernels. Another contribution is an algorithm for simplifying the remaining satisfiable data dependences by discovering equalities and/or subset relationships. These simplifications are essential to make a runtime-inspection-based approach feasible.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/19/2023

Sparse Partial-Tracing

Matrices and more generally multidimensional arrays, form the backbone o...
research
06/13/2023

Efficient GPU Implementation of Affine Index Permutations on Arrays

Optimal usage of the memory system is a key element of fast GPU algorith...
research
11/13/2019

Compile-time Parallelization of Subscripted Subscript Patterns

An increasing number of scientific applications are making use of irregu...
research
06/27/2019

Array Codes with Local Properties

In general, array codes consist of m× n arrays and in many cases, the ar...
research
08/10/2022

A New Low-Redundancy Restricted Array with Reduced Mutual Coupling

In array signal processing, a fundamental problem is to design a sensor ...
research
10/05/2021

RASA: Efficient Register-Aware Systolic Array Matrix Engine for CPU

As AI-based applications become pervasive, CPU vendors are starting to i...
research
09/28/2021

Demystifying Algorithmic Complexities and Geometric Review of the 'h'-Index

The current discourse delves into the effectiveness of h-index as an aut...

Please sign up or login with your details

Forgot password? Click here to reset