Multivalue Reductions Serial Initial Parallel Subsequent Register Spaces

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional parallel processing devices face a bottleneck in performing multivalue reductions, which are typically done serially, limiting throughput in high-demand applications like audio generation neural networks that require rapid computation of multiple values.

Innovation Solution

The system employs parallel processing hardware to compute multivalue reductions by performing initial reductions in serial across multiple register spaces and then moving data into a single register space for subsequent parallel reductions, allowing for the computation of multiple final values simultaneously.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If multivalue reductions are performed using conventional serial methods, then the implementation is simple, but the processing speed and throughput are limited

Engineering Contradiction:
Improveprocessing speedVSAvoidalgorithm complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the multivalue reduction problem into multiple single-value reduction subproblems. Each thread block handles one value reduction by processing elements from multiple register spaces in parallel, then combining results. This segmentation allows the system to leverage existing efficient single-value reduction hardware while achieving multivalue functionality through coordinated parallel execution across multiple thread blocks.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple single-value reductions are performed serially, then the implementation is straightforward, but the throughput is bottlenecked

Engineering Contradiction:
ImprovethroughputVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of data by having each thread block load and reduce elements from different register spaces into shared memory before the final combination step. Thread blocks prepare their partial results in advance, storing reduced values in shared memory registers. This preliminary action enables the final parallel combination phase to proceed efficiently without data access bottlenecks, significantly improving overall throughput.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If parallel processing capabilities are fully utilized, then the computation time is reduced, but the device complexity increases

Engineering Contradiction:
Improvecomputation timeVSAvoidhardware coordination complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a new dimension of parallelism by organizing thread blocks to process different values simultaneously while each block handles multiple elements in parallel. The invention creates a two-dimensional parallel execution model: one dimension for element-wise parallelism within thread blocks, and another dimension for value-wise parallelism across thread blocks. This dimensional approach maximizes hardware utilization without requiring complex coordination mechanisms.

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

Data Source

PatentUS11163567B2Multivalue reductions using serial initial reductions in multiple register spaces and parallel subsequent reductions in a single register space
Publication Date: 2021.11.02 GOOGLE LLC
  • US11163567B2 patent drawing
  • US11163567B2 patent drawing
  • US11163567B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for computing a multivalue reduction using a parallel processing device. One of the methods includes performing a parallel M-value reduction by parallel processing units of a parallel processing device. A plurality of initial reductions are performed in serial, each initial reduction operating on data in a different respective register space of at least M register spaces. Data is moved from the M register spaces so that all results from the plurality of initial reductions are in a same first register space. One or more subsequent reductions are performed in parallel to compute M final values, each subsequent reduction operating only on data in the first register space.