SIMD Prefix Sum Instructions for Faster Vector Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies lack efficient methods for performing prefix sums in high-performance computing, particularly in parallel algorithms and workloads such as radix sort and weather prediction, which require significant energy and time due to the complexity of calculating prefix sums.

Innovation Solution

The implementation of a single instruction for calculating prefix sums using SIMD or vector capabilities, supporting various data types and sizes, including integer, floating-point, and bfloat16, with options for signed and unsigned additions, and allowing for writemasking or predication to optimize energy and time consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional methods are used for prefix sum calculations, then the calculations can be performed, but the energy consumption and time required are significantly high due to the complexity of the calculations

Engineering Contradiction:
Improveprefix sum calculation speedVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent divides the prefix sum calculation into multiple independent stages that can be executed in parallel. Each stage processes a portion of the input data simultaneously, reducing the overall computation time and energy consumption while maintaining correctness through careful coordination of partial results.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the sequential prefix sum problem into a parallel computation by introducing a new dimensional approach using SIMD vector operations. This allows multiple elements to be processed simultaneously across different data lanes, fundamentally changing the computational paradigm from sequential to parallel execution.

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

2Adaptability or versatility

If more code is written to handle different data types and sizes, then more versatility is achieved, but the code complexity and energy consumption increase

Engineering Contradiction:
Improvesupport for different data typesVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal prefix sum instruction that automatically adapts to different data types (integers, floating-point, bfloat16) and sizes through a single unified code path. The SIMD architecture inherently supports multiple data types, eliminating the need for separate implementation code for each type while maintaining full versatility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses parameter-based configuration where data type and size are specified as parameters to the single instruction rather than requiring different code paths. This allows the same computational logic to handle various data types by changing runtime parameters, significantly reducing code complexity while maintaining adaptability.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If traditional sequential methods are used, then implementation is simpler, but the time and energy required for calculation are significantly higher

Engineering Contradiction:
Improvecalculation timeVSAvoidinstruction complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent performs preliminary organization of data into vector lanes and pre-configures the SIMD execution units before the actual prefix sum computation. This preliminary setup enables the subsequent parallel calculation to proceed efficiently with minimal overhead, reducing overall calculation time despite the enhanced instruction capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces intermediate vector registers and temporary storage structures that facilitate the parallel computation. These intermediaries hold partial results during the multi-stage process, enabling efficient data flow between parallel execution units while managing the complexity of coordinated computation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4293504B1Instructions and support for calculating prefix sums
Publication Date: 2025.07.16 INTEL CORP
  • EP4293504B1 patent drawingFigure 1
  • EP4293504B1 patent drawingFigure 2
  • EP4293504B1 patent drawingFigure 3

AI summary

Techniques for performing prefix sums in response to a single instruction are describe are described. In some examples, the single instruction includes fields for an opcode, one or fields to reference a first source operand, one or fields to reference a second source operand, one or fields to reference a destination operand, wherein the opcode is to indicate that execution circuitry is, in response to a decoded instance of the single instruction, to at least: perform a prefix sum by for each non-masked data element position of the second source operand adding a data element of that data element position to each data element of preceding data element positions and adding at least one data element of a defined data element position of the first source operand, and store each prefix sum for each data element position of the second source operand into a corresponding data element position of the destination operand.