Formatted Matrix Data Structure for Sparse Computation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for computing output vector values from sparse matrix data are inefficient due to the high percentage of zero elements, leading to performance issues in applications like structural engineering and computational fluid dynamics.
Innovation Solution
A formatted matrix data structure (FMDS) is created by reorganizing sparse matrix data into slabs, tiles, and slices, allowing for efficient block writing of output values directly into an output vector, minimizing scatter operations and improving cache utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional sparse matrix computation methods are used, then the computation can be performed, but the performance is poor due to high percentage of zero elements causing unnecessary operations
Solution Approach 1:
The patent extracts and removes zero elements from the computation process entirely by using a compressed sparse row format that stores only non-zero elements. This extraction principle eliminates the harmful factor of performing operations on zero elements, directly resolving the contradiction between computation performance and unnecessary operations.
Solution Approach 2:
The patent changes the data representation parameters by organizing sparse matrix data into a formatted structure with specific arrays for row indices, column indices, and values. This parameter change transforms the computation from operating on a dense structure with many zeros to operating on a compressed structure with only non-zero elements, improving productivity while reducing wasted operations.
2Productivity
If sparse matrix data is processed using conventional methods, then the computation is straightforward, but cache utilization is poor leading to performance issues
Solution Approach 1:
The patent segments the sparse matrix data into structured arrays (row indices, column indices, values) and processes data in a formatted sequence that improves cache utilization. This segmentation organizes the data in memory access patterns that are more cache-friendly, resolving the contradiction between productivity and device complexity.
3Ease of operation
If output values are stored in scattered locations, then each computation can be stored independently, but scatter operations reduce efficiency
Solution Approach 1:
The patent merges the storage of output values by using an output buffer that collects results in a sequential manner before final placement. This combining approach reduces the number of scatter operations needed, improving productivity while maintaining the flexibility of independent computation storage through the buffering mechanism.
Data Source
AI summary
A computer system retrieves a packet that includes non-zero elements that correspond to sparse-matrix rows. Within the packet, the non-zero elements are stored in predefined fields that each correspond to one of the sparse-matrix rows. The computer system computes output values to correspond with each of the sparse-matrix rows using the non-zero elements and corresponding input values. In turn, the computer system stores the computed output values in consecutive locations within an output buffer and processes the output values accordingly.


