Parallel Reduction Operations in Data Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems, particularly graphics processing systems, face inefficiencies in performing reduction operations within thread groups, as existing methods require sequential combination of data values across execution lanes, which can be cumbersome and inefficient, especially when dealing with inactive lanes.

Innovation Solution

The proposed method configures data processing systems to perform reduction operations by progressively combining data values in pairs of execution lanes, selecting active lanes for each step, and using a specific relative position within the group to ensure efficient data combination, thereby reducing the number of necessary combining steps and handling inactive lanes effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If sequential combination of data values across execution lanes is used, then correctness of reduction operation is ensured, but processing time increases and efficiency decreases

Engineering Contradiction:
Improvecorrectness of reduction operationVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The reduction operation is divided into multiple parallel stages where data values are combined in pairs across execution lanes simultaneously. Instead of sequentially combining all data values one by one, the method segments the combination process into logarithmic stages, where each stage combines results from previous stages in parallel, reducing total processing time while maintaining correctness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the reduction operation by organizing execution lanes into groups and implementing multi-stage combination. Data values are combined across different dimensions (within lanes, between lanes, across groups) in a tree-like structure, transforming the linear sequential process into a multi-dimensional parallel process that reduces time complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If all execution lanes are utilized for reduction operation, then processing throughput increases, but complexity increases when handling inactive lanes

Engineering Contradiction:
Improveprocessing throughputVSAvoidcomplexity of handling inactive lanes
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary identification of active execution lanes before the reduction operation begins. By determining which lanes contain valid data in advance, the system can configure the reduction process to only involve active lanes, avoiding unnecessary operations on inactive lanes and simplifying the control logic while maintaining high throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The reduction operation is made dynamic by allowing the participation of execution lanes to vary based on their active/inactive state. The system adapts the combination process to include only active lanes at each stage, using dynamic control signals to route data appropriately. This dynamic approach maintains high throughput by utilizing all active resources while avoiding the complexity of static configurations.

Inventive Principle:
Principle #15Dynamics

3Measurement precision

If reduction operation combines data values from all execution lanes, then completeness of result is ensured, but number of combining steps increases

Engineering Contradiction:
Improvecompleteness of reduction resultVSAvoidnumber of combining steps
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The combination process is segmented into logarithmic stages rather than linear steps. At each stage, data values are combined in pairs across execution lanes simultaneously. This segmentation reduces the total number of combining steps from O(n) sequential operations to O(log n) parallel stages, ensuring all lanes contribute to the final result while minimizing the number of steps required.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple combination operations into single parallel stages. Instead of performing separate combine operations for each execution lane sequentially, the method merges combinations across all active lanes into simultaneous operations at each stage, reducing the total number of steps while ensuring complete contribution from all lanes to the final reduction result.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10922086B2Reduction operations in data processors that include a plurality of execution lanes operable to execute programs for threads of a thread group in parallel
Publication Date: 2021.02.16 ARM LTD
  • US10922086B2 patent drawing
  • US10922086B2 patent drawing
  • US10922086B2 patent drawing

AI summary

To perform a reduction operation to combine data values for threads in a thread group using a data processor, the data processor performs combining steps that each combine the stored combined data value result of a previous combining operation for a thread with the combined data value result of the previous combining operation for a selected another execution lane that has not yet contributed to the stored combined data value result for the thread. The data processor selects as the another execution lane of the execution processing circuitry that has not yet contributed to the combined data value result for the thread, an execution lane from a group of execution lanes whose values have been combined in the previous combining step and that have not yet contributed to the combined data value result for the thread, and having a particular relative position in the group of execution lanes.