Matrix Element Assignment for Sparse Data Contiguousness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing parallel processing architectures, optimized for dense matrices, exhibit suboptimal performance when operating on sparse matrices due to incoherent memory accesses and work imbalance among processing threads.
Innovation Solution
A system and method that assign matrix elements to processing threads using an algorithm to increase contiguousness, optionally reordering the matrix to utilize shared and global memory efficiently, thereby reducing scattered memory accesses and optimizing thread workload.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel processing architectures process sparse matrices using conventional methods, then processing can be performed, but performance is suboptimal due to incoherent memory accesses and work imbalance
Solution Approach 1:
The patent applies preliminary action by reordering the sparse matrix elements before processing to create a more coherent access pattern. The matrix is pre-processed to group non-zero elements in a way that enables sequential memory access during parallel computation, eliminating the need for random memory accesses during the actual processing phase.
Solution Approach 2:
The patent changes the parameter of element ordering/arrangement in the matrix. By transforming the matrix from its original sparse format to a reordered format where non-zero elements are positioned to maximize memory access coherence, the system achieves better performance without changing the fundamental processing architecture.
2Productivity
If parallel processing architectures process sparse matrices using conventional methods, then processing can be performed, but work is unbalanced amongst processing threads
Solution Approach 1:
The patent applies preliminary action by pre-distributing matrix elements to processing threads in a balanced manner. Before the actual parallel processing begins, the matrix elements are sorted and assigned to threads such that each thread receives a roughly equal amount of work, preventing workload imbalance during execution.
Solution Approach 2:
The patent changes the parameter of element distribution across threads. By modifying how matrix elements are assigned to processing threads—from conventional methods to the sorting-based assignment method described—the system achieves more uniform workload distribution and better parallel processing efficiency.
3Device complexity
If sparse matrices are processed without reordering, then processing is simpler, but memory accesses are scattered and inefficient
Solution Approach 1:
The patent applies preliminary action by performing a one-time reordering operation on the sparse matrix before processing. This initial sorting step, while adding some complexity, enables efficient sequential memory access during the actual processing phase, significantly improving memory access efficiency without requiring complex processing logic during computation.
Data Source
AI summary
A system, method, and computer program product are provided for assigning elements of a matrix to processing threads. In use, a matrix is received to be processed by a parallel processing architecture. Such parallel processing architecture includes a plurality of processors each capable of processing a plurality of threads. Elements of the matrix are assigned to each of the threads for processing, utilizing an algorithm that increases a contiguousness of the elements being processed by each thread.


