Formatted Matrix Data Structure for Sparse Vector Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data structures for sparse matrices are inefficient in performing vector multiply operations due to the large number of zero elements, leading to poor performance in applications like structural engineering and computational fluid dynamics.

Innovation Solution

A formatted matrix data structure (FMDS) is created by partitioning sparse matrices into slabs and tiles, with non-zero elements stored in packets to minimize scatter operations and improve cache utilization, allowing for efficient vector multiplication across multiple hardware platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sparse matrices are stored in conventional data structures, then the complete matrix structure is preserved, but vector multiply operations become inefficient due to the large number of zero elements

Engineering Contradiction:
Improvevector multiply operation efficiencyVSAvoidtime spent on multiply by zero operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts only the non-zero elements from the sparse matrix and stores them in a specialized data structure with explicit row and column index tracking. This extraction eliminates the need to process zero elements during vector multiplication, directly resolving the technical contradiction by removing harmful operations while preserving the functional structure needed for computation.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the sparse matrix storage into distinct components: row indices, column indices, and non-zero values, organized in a structured format. This segmentation allows the computation system to process only relevant non-zero elements during vector multiplication, improving productivity by avoiding unnecessary operations on zero elements.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If all matrix elements are stored including zeros, then the matrix structure is complete and simple to access, but memory usage increases and cache utilization deteriorates

Engineering Contradiction:
Improvememory storage efficiencyVSAvoiddata structure organization complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent extracts only the non-zero elements from the full matrix and stores them in a compact format with associated index information. This extraction reduces the quantity of stored data significantly for sparse matrices, improving memory storage efficiency while the structured organization of indices maintains reasonable access complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of storing the matrix in the conventional way (rows and columns with zeros included), the patent inverts the approach by storing only the non-zero elements with their position information. This inversion fundamentally changes the storage paradigm from dense to sparse format, achieving better memory efficiency.

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If non-zero elements are distributed throughout the matrix structure, then the original matrix topology is maintained, but scatter operations increase and cache utilization decreases

Engineering Contradiction:
Improvecache utilization efficiencyVSAvoidscatter operation frequency
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the storage of non-zero elements with their position information into a unified structured format. By combining the values with their row and column indices in a single organized structure, the patent reduces scatter operations during computation, as all necessary information is co-located and accessible in a systematic manner, thereby improving cache utilization.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8959135B2Data structure for tiling and packetizing a sparse matrix
Publication Date: 2015.02.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8959135B2 patent drawing
  • US8959135B2 patent drawing
  • US8959135B2 patent drawing

AI summary

A computer system retrieves a slice of sparse matrix data, which includes multiple rows that each includes multiple elements. The computer system identifies one or more non-zero values stored in one or more of the rows. Each identified non-zero value corresponds to a different row, and also corresponds to an element location within the corresponding row. In turn, the computer system stores each of the identified non-zero values and corresponding element locations within a packet at predefined fields corresponding to the different rows.