SpMV Scheduling Using Row Similarity Metadata

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Sparse matrix vector (SpMV) multiplication in scientific and engineering applications faces inefficiencies due to large numbers of zeros and irregular data patterns in sparse matrices, leading to poor bandwidth and cache use, particularly with Compressed Sparse Row (CSR) representations, which result in cache misses and increased bandwidth consumption.

Innovation Solution

The approach involves generating CSR representation metadata to determine row similarity using methods like Cosine similarity, Jaccard similarity, and Locality Sensitive Hashing (LSH), which approximates Jaccard similarity, to schedule SpMV operations, increasing data locality and reducing cache misses and bandwidth consumption by grouping similar rows together for execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If CSR representation is used for sparse matrix storage, then the size of the sparse matrix is reduced and data pattern becomes more regular, but column access patterns become irregular causing cache misses and increased bandwidth consumption

Engineering Contradiction:
Improvesize of sparse matrixVSAvoidbandwidth consumption
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing column access metadata (column pointers and non-zero element counts) before the actual SpMV operation. This metadata is used to predict which columns will be accessed and pre-load them into cache, thereby reducing cache misses and bandwidth consumption during the computation phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a new dimension of optimization by adding a metadata layer that tracks column access patterns. This metadata structure (column pointers and element counts) provides an additional indexing dimension that enables predictive caching strategies, transforming the problem from purely row-based CSR access to a hybrid approach that optimizes column access efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Quantity of substance

If CSR representation is used for sparse matrix storage, then the size of the sparse matrix is reduced and data pattern becomes more regular, but cache misses increase due to irregular column access patterns

Engineering Contradiction:
Improvesize of sparse matrixVSAvoidcache misses
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing column access metadata (column pointers and non-zero element counts) before the actual SpMV operation. This metadata is used to predict which columns will be accessed and pre-load them into cache, thereby reducing cache misses and bandwidth consumption during the computation phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service by having the metadata structure automatically guide the caching behavior. The column pointers and element counts in the metadata serve as self-descriptive information that enables the system to autonomously determine which data to cache without external intervention, improving cache hit rates and reducing access time.

Inventive Principle:
Principle #25Self-service

3Loss of energy

If tiling strategies are used to tile a sparse input matrix into denser chunks, then data locality and caching efficiency are improved, but additional reductions are required to reduce values computed across tiles

Engineering Contradiction:
Improvecaching efficiencyVSAvoidreductions operations
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies the extraction principle by separating the metadata (column pointers and element counts) from the actual matrix data storage. This extracted metadata is stored in a dedicated structure that enables efficient column access prediction without requiring complex reduction operations across tiles, thereby reducing computational overhead while maintaining caching efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

4Loss of energy

If Compressed Sparse Column (CSC) format and outer product are used, then data locality is improved when there is less column sparsity, but more complex reductions operations are required

Engineering Contradiction:
Improvedata localityVSAvoidreductions operations
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing column access metadata (column pointers and non-zero element counts) before the actual SpMV operation. This metadata is used to predict which columns will be accessed and pre-load them into cache, thereby reducing cache misses and bandwidth consumption during the computation phase.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240169019A1PERFORMANCE IN SPARSE MATRIX VECTOR (SpMV) MULTIPLICATION USING ROW SIMILARITY
Publication Date: 2024.05.23 ADVANCED MICRO DEVICES INC
  • US20240169019A1 patent drawing
  • US20240169019A1 patent drawing
  • US20240169019A1 patent drawing

AI summary

A technical solution to the technical problem of how to improve performance when performing SpMV multiplication uses sparse matrix row similarity to schedule SpMV multiplication operations. CSR representation metadata is generated for a CSR representation and indicates the locations of non-zero values in the rows of the corresponding sparse matrix or the cache locations of column data needed for SpMV multiplication operations. The CSR representation metadata is used to determine the similarity of rows in the sparse matrix based upon Cosine similarity, Jaccard similarity, Locality Sensitive Hashing (LSH) that approximates Jaccard similarity, or other measures of similarity. The row similarity is used to schedule SpMV multiplication operations to increase data locality, reduce cache misses, reduce time stalling on memory accesses, and reduce bandwidth consumption. Implementations include the use of similarity thresholds to schedule SpMV multiplication operations on particular threads and processing elements and load balancing to further improve performance.