Broadcast Arithmetic Recurrence Instruction for Vectorized Loop Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Recurrence loops in computer processor architecture cannot be effectively vectorized due to overlapping calculations, where values from previous iterations are not available for succeeding iterations, hindering performance in applications like weather codes.

Innovation Solution

The introduction of an arithmetic recurrence instruction that broadcasts data values from a least significant packed data element position to perform operations across multiple packed data elements, allowing for efficient execution of recurrence operations through broadcast circuitry and execution units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional scalar operations are used for recurrence loops, then correctness is maintained, but processing speed and productivity are significantly reduced

Engineering Contradiction:
Improveprocessing speedVSAvoidoperation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The recurrence loop is segmented into distinct phases: a scalar recurrence operation for the first element, followed by vectorized operations for subsequent elements. This segmentation allows the use of efficient vector instructions while maintaining the correctness of the recurrence relationship, thereby improving productivity without sacrificing accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from scalar operations to vector operations by introducing a new dimension of parallelism. By using packed data elements and vector instructions, multiple calculations can be performed simultaneously, effectively moving from one-dimensional sequential processing to multi-dimensional parallel processing, which significantly boosts processing speed.

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

2Productivity

If vectorized operations are applied to recurrence loops, then processing speed increases, but calculation correctness deteriorates due to overlapping iterations

Engineering Contradiction:
Improveprocessing speedVSAvoidcalculation correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The first element of the recurrence loop is computed using a scalar operation before the vectorized operations begin. This preliminary action establishes the correct initial value that subsequent vector operations can build upon, ensuring that the recurrence relationship is maintained correctly while still achieving speedup from vectorization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary approach where the recurrence relationship is established through a initial scalar operation, and then vector operations use this established relationship to compute subsequent elements. This intermediary step acts as a bridge between the sequential nature of recurrence and the parallel capability of vector operations, maintaining correctness while enabling speedup.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by moving object

If scalar operations are used for each iteration, then calculation precision is maintained, but energy consumption increases and power efficiency decreases

Engineering Contradiction:
Improvepower efficiencyVSAvoidinstruction complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

Multiple scalar operations are merged into a single vector operation that processes multiple elements simultaneously. By combining several individual calculations into one vectorized instruction, the patent reduces the total number of operations required, thereby lowering energy consumption and improving power efficiency while maintaining calculation precision.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The vectorized operations enable continuous processing of multiple elements without the overhead of repeated scalar operation setup. By maintaining continuous useful action across multiple data elements in a single instruction stream, the patent improves power efficiency by reducing the frequency of operation initiation and completion cycles.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10860315B2Systems, apparatuses, and methods for arithmetic recurrence
Publication Date: 2020.12.08 INTEL CORP
  • US10860315B2 patent drawing
  • US10860315B2 patent drawing
  • US10860315B2 patent drawing

AI summary

Embodiments of systems, apparatuses, and methods for broadcast arithmetic in a processor are described. For example, execution circuitry executes a decoded instruction to broadcast a data value from a least significant packed data element position of a first packed data source operand to a plurality of arithmetic circuits and for each packed data element position of a second packed data source operand, other than a least significant packed data element position, perform the arithmetic operation defined by the instruction on a data value from that packed data element position of the second packed data source operand and all data values from packed data element positions of the second packed data source operand that are of lesser position significance to the broadcast data value from the least significant packed data element position of the first packed data source operand, and stores a result of each arithmetic operation into a packed data element position of the packed data destination operand that corresponds to a most significant packed data element position of the second packed data source operand.