Symmetric Matrix Vector Multiplication Parallel Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for parallel computation of symmetric matrix multiplication with vectors suffer from write conflicts, redundancy in data reading, and unbalanced thread workloads, leading to inefficiencies and inaccuracies in computation.

Innovation Solution

A parallel computation method that divides a symmetric matrix into symmetric axis, upper triangular, and lower triangular regions, and allocates threads to process these regions in a way that avoids write conflicts by using multiple storage devices and optimizing thread resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If parallel computation is used to multiply symmetric matrix with vector, then computation time is reduced, but write conflicts occur leading to incorrect results

Engineering Contradiction:
Improvecomputation timeVSAvoidcomputation accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent divides the symmetric matrix into distinct regions: upper triangular region, lower triangular region, and diagonal region. Each region is assigned to different thread groups that compute independently and write to different memory locations, eliminating write conflicts while maintaining parallel computation speedup.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporary storage structure (accumulator array) that acts as an intermediary between thread computations and final memory writes. Threads write their partial results to this intermediary structure first, which then consolidates and writes to the final result vector, preventing direct write conflicts in the result vector.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If existing techniques are used for symmetric matrix computation, then simpler algorithm is maintained, but same data is read twice resulting in redundancy and lower computation efficiency

Engineering Contradiction:
Improvealgorithm complexityVSAvoidcomputation efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent extracts and separates the diagonal elements from the upper and lower triangular regions. By processing the diagonal region separately and using it once, the algorithm avoids redundant reads of diagonal data that would occur if the entire symmetric matrix were processed without considering the symmetry property.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different computation strategies to different regions of the matrix. The upper triangular region is processed one way, the lower triangular region is processed another way, and the diagonal region is processed differently. This localized optimization ensures that each region is handled according to its specific characteristics, improving overall computation efficiency.

Inventive Principle:
Principle #3Local quality

3Device complexity

If simple matrix division into regions is used, then implementation is simplified, but thread workload becomes unbalanced wasting thread resources

Engineering Contradiction:
Improveimplementation complexityVSAvoidthread resource utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent dynamically adjusts the computation assigned to each thread group based on the size and characteristics of the matrix regions. The diagonal region is processed by one group of threads while upper and lower triangular regions are processed by other groups, with the workload dynamically balanced according to the actual matrix dimensions and data characteristics.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent assigns different computational tasks to different thread groups based on local characteristics of each matrix region. Threads processing the upper triangular region have different workloads than threads processing the lower triangular region or diagonal region, optimizing resource utilization by matching thread capabilities to local computational requirements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250036716A1Parallel computation methods and systems for multiplying symmetric matrices with vectors
Publication Date: 2025.01.30 LINGDI (ZHEJIANG) TECHNOLOGY CO LTD
  • US20250036716A1 patent drawing
  • US20250036716A1 patent drawing
  • US20250036716A1 patent drawing

AI summary

Parallel computation methods and systems for multiplying symmetric matrices with vectors are provided. The method may include acquiring a symmetric matrix and a vector; determining a count of a plurality of threads; dividing the symmetric matrix into a symmetric axis region, an upper triangular region, and a lower triangular region; obtaining symmetric axis data by determining a product of the symmetric axis region and the vector; dividing the upper triangular region or the lower triangular region into one or more subregions; for each of the one or more subregions, determining one or more candidate axes parallel to the symmetric axis, and for each of the one or more candidate axes, obtaining two sets of data or four sets of data by performing two multiplication operations on the candidate axis; and obtaining a result of multiplying the symmetric matrix with the vector.