Segmented Reduction Algorithm for Sparse Matrix Workload Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Sparse matrix multiplication, particularly in applications like graphics processing, faces challenges in mapping reduction operations to data-parallel machines due to unequal workload distribution when rows of the matrix are mapped onto processing elements.

Innovation Solution

Converting reduction algorithms to segmented reduction algorithms, allowing for parallel processing across arbitrary partitions of the input vector, thereby avoiding workload imbalances and optimizing performance by utilizing parallel processing architectures like GPUs and SIMD architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If reduction operations are mapped to data-parallel machines using traditional methods, then processing can be performed in parallel, but unequal workload distribution occurs causing inefficiency

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidworkload distribution
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The input vector is divided into multiple segments that are processed in parallel by different processing elements. Each segment is independently reduced, and the partial results are combined to produce the final result. This segmentation allows for better load distribution across processing elements while maintaining parallel processing capability.

Inventive Principle:
Principle #1Segmentation

2Productivity

If traditional segmented scans are used for sparse matrix-vector multiplication, then parallel processing is achieved, but computational efficiency is reduced by computing unnecessary values

Engineering Contradiction:
Improveparallel processingVSAvoidcomputational efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The algorithm extracts and processes only the non-zero elements and their corresponding indices from the sparse matrix representation. By identifying and working solely with relevant data elements rather than processing entire segments uniformly, the algorithm avoids computing unnecessary values and reduces wasted computational effort.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing complete segmented scans on entire vector segments, the algorithm performs partial reduction operations only on the necessary portions of data that contribute to the final result. This partial action approach computes only what is required, avoiding excessive computation on irrelevant elements.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8321492B1System, method, and computer program product for converting a reduction algorithm to a segmented reduction algorithm
Publication Date: 2012.11.27 NVIDIA CORP
  • US8321492B1 patent drawing
  • US8321492B1 patent drawing
  • US8321492B1 patent drawing

AI summary

A system, method, and computer program product are provided for converting a reduction algorithm to a segmented reduction algorithm. In operation, a reduction algorithm is identified. Additionally, the reduction algorithm is converted to a segmented reduction algorithm. Furthermore, the segmented reduction algorithm is performed to produce an output.