SMASH: Co-designing Software Compression and Hardware-Accelerated Indexing for Efficient Sparse Matrix Operations
Konstantinos Kanellopoulos, Nandita Vijaykumar, Christina Giannoula,, Roknoddin Azizi, Skanda Koppula, Nika Mansouri Ghiasi, Taha Shahroodi, Juan, Gomez Luna, Onur Mutlu

TL;DR
SMASH introduces a hardware-software co-designed approach that uses bitmap hierarchies for efficient sparse matrix indexing, significantly improving performance in machine learning and graph analytics workloads.
Contribution
The paper presents SMASH, a novel hardware-software mechanism with a bitmap-based encoding and a hardware unit for efficient sparse matrix indexing, addressing a key bottleneck in sparse computations.
Findings
Achieves faster sparse matrix indexing compared to traditional CSR methods.
Demonstrates performance improvements in four sparse matrix and graph analytics use cases.
Provides a flexible hardware interface compatible with various sparse matrix formats.
Abstract
Important workloads, such as machine learning and graph analytics applications, heavily involve sparse linear algebra operations. These operations use sparse matrix compression as an effective means to avoid storing zeros and performing unnecessary computation on zero elements. However, compression techniques like Compressed Sparse Row (CSR) that are widely used today introduce significant instruction overhead and expensive pointer-chasing operations to discover the positions of the non-zero elements. In this paper, we identify the discovery of the positions (i.e., indexing) of non-zero elements as a key bottleneck in sparse matrix-based workloads, which greatly reduces the benefits of compression. We propose SMASH, a hardware-software cooperative mechanism that enables highly-efficient indexing and storage of sparse matrices. The key idea of SMASH is to explicitly enable the hardware…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
