Value-Compressed Sparse Column (VCSC): Sparse Matrix Storage for Redundant Data

Skyler Ruiter, Seth Wolfgang, Marc Tunnell, Timothy J. Triche, Erin Carrier, Zachary J. DeBruine · 2024

Large, sparse matrices are common in a variety of applications in scientific computing and machine learning, and are most commonly stored in CSC, CSR, or COO format. Most extensions or adaptations of these formats focus on enabling faster computation through techniques such as blocking. While common, these formats and extensions primarily take advantage of sparsity or nonzero patterns. In some cases, however, sparse data is highly redundant, with relatively few unique nonzero values. We introduce two novel extensions of CSC that aim to exploit redundancy: 1) Value-Compressed Sparse Column (VCSC) and 2) Index- and Value-Compressed Sparse Column (IVCSC). For each column, VCSC stores three arrays: unique values, value counts, and row indices, capitalizing on per-column value-redundancy by storing each unique value in a column once. IVCSC compresses further by also performing index-compression, storing an array of sections, where each section contains a value, then byte width to store row indices for that value, then positive-delta encoded row indices, then a delimiter. We summarize compression performance for VCSC and IVCSC on five varied, real-world datasets representing a wide range of use cases.

Read the paper · More papers on PaperTik