Vectorizing Sparse Matrix Codes with Dependency Driven Trace Analysis
Zachary Cetinic, Kazem Cheshmi, Maryam Mehri Dehnavi

TL;DR
This paper introduces PSC, a polyhedral model enabling vectorization of irregular sparse matrix computations, significantly improving performance over existing methods through a novel dependency-driven trace analysis framework.
Contribution
The paper presents PSC, a new polyhedral model for vectorizing irregular sparse computations, and a framework that efficiently mines memory accesses to generate high-performance code.
Findings
DDF outperforms MKL with 1.93x and 4.5x speedups for SpMV and SpTRSV.
DDF outperforms Sympiler by up to 11x for SpTRSV.
DDF outperforms Augustine et al. by up to 12x for SpMV.
Abstract
Sparse computations frequently appear in scientific simulations and the performance of these simulations rely heavily on the optimization of the sparse codes. The compact data structures and irregular computation patterns in sparse matrix computations introduce challenges to vectorizing these codes. Available approaches primarily vectorize regular regions of computations in the sparse code. They also reorganize data and computations, at a cost, to increase the number of regular regions. In this work, we propose a novel polyhedral model, called the partially strided codelets (PSC), that enables the vectorization of computation regions with irregular data access patterns. PSCs also improve data locality in sparse computation. Our DDF inspector-executor framework efficiently mines the memory accesses in the sparse computation, using an access function differentiation approach, to find PSC…
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
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Error Correcting Code Techniques
