Interleaved Sparse Matrix Data Structure for Parallel Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing sparse matrix encoding formats, such as CSR, are inefficient for parallel processing by computation devices that can process multiple rows simultaneously, requiring additional logic and resources to leverage communication bandwidth effectively.
Innovation Solution
A data structure that interleaves non-zero elements of a sparse matrix into a first array based on the number of rows processed in parallel, allowing parallel processing units to start processing rows before all elements are received, and maps column indices to data buffer addresses for efficient sparse matrix-vector multiplication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If CSR encoding format stores all elements of a row contiguously in an encoded array, then storage requirements are reduced, but processing efficiency deteriorates for parallel processing devices
Solution Approach 1:
The patent segments the sparse matrix into multiple blocks, where each block contains a subset of rows. This segmentation allows parallel processing units to work on different blocks simultaneously, resolving the contradiction by enabling parallel processing while maintaining the space-efficient encoding properties of CSR format.
Solution Approach 2:
The patent introduces a new dimension of organization by arranging matrix elements in an interleaved pattern across multiple arrays rather than storing complete rows contiguously. This dimensional reorganization allows parallel access patterns that match the architecture of parallel processing devices, improving productivity without sacrificing storage efficiency.
2Quantity of substance
If CSR encoding format is used, then storage requirements are reduced, but additional logic, wiring, and buffers are required to process efficiently
Solution Approach 1:
By segmenting the matrix into blocks and distributing elements across multiple arrays in an interleaved manner, the patent reduces the complexity of routing and buffering requirements. Each processing unit can access its assigned elements more directly, reducing the need for complex cross-talk and buffering infrastructure.
Solution Approach 2:
The patent introduces intermediary data structures (multiple arrays with interleaved elements) that act as mediators between the stored matrix data and the parallel processing units. These intermediaries organize data in a way that naturally supports parallel access, reducing the need for additional control logic and buffering.
3Reliability
If all elements of a row are received before processing, then data integrity is ensured, but processing speed decreases for parallel devices
Solution Approach 1:
The patent enables preliminary action by organizing data so that processing can begin before all elements are received. The interleaved block structure allows processing units to start computing with available elements while continuing to receive remaining elements, thus improving speed without compromising the eventual completeness and integrity of the computation.
Solution Approach 2:
The patent ensures continuity of useful action by allowing parallel processing units to continuously process available data elements without idle waiting periods. The interleaved organization ensures that as long as some elements are available, processing can continue, maintaining both speed and data integrity through continuous computational activity.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
Various embodiments relating to encoding a sparse matrix into a data structure format that may be efficiently processed via parallel processing of a computing system are provided. In one embodiment, a sparse matrix may be received. A set of designated rows of the sparse matrix may be traversed until all non-zero elements in the sparse matrix have been placed in a first array. Each time a row in the set is traversed, a next non-zero element in that row may be placed in the first array. If all non-zero elements for a given row of the set of designated rows have been placed in the first array, the given row may be replaced in the set of designated rows with a next unprocessed row of the sparse matrix. The data structure in which the sparse matrix is encoded may be outputted. The data structure may include the first array.