Vector Linear Interpolation Logic for Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face performance bottlenecks due to serially dependent operations in linear interpolation, which limits the advantages of wide vector architectures.

Innovation Solution

Implement instructions and processing logic that allow for parallel execution of multiplications and additions/subtractions in vector linear interpolation operations, enabling the entire operation to be performed with similar latency as a simple multiplication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If linear interpolation is implemented using the standard definition a+w×(b−a) with three serially dependent operations, then the operation follows the mathematical definition accurately, but the performance is limited due to serial dependency

Engineering Contradiction:
Improvemathematical accuracyVSAvoidoperation throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the linear interpolation operation into independent parallel components by rewriting the formula as a×(1−w)+w×b, allowing the multiplications a×(1−w) and w×b to be executed simultaneously rather than sequentially, thus resolving the serial dependency while maintaining mathematical accuracy

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter representation by introducing (1−w) as an additional parameter, transforming the single multiplication operation into two parallel multiplications that can be executed concurrently, improving throughput without sacrificing precision

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If linear interpolation uses one subtraction, one multiplication, and one addition in sequence, then the implementation is straightforward, but it creates performance bottlenecks in wide vector architectures

Engineering Contradiction:
Improveimplementation simplicityVSAvoidvector operation performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent divides the sequential operation chain into independent parallel segments: the multiplication a×(1−w) can be executed simultaneously with the multiplication w×b, and both can proceed independently of each other, eliminating the performance bottleneck in wide vector architectures while keeping the implementation relatively simple

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a one-dimensional sequential execution model to a two-dimensional parallel execution model by restructuring the computation graph, allowing operations to proceed in multiple dimensions simultaneously, thus improving vector operation performance

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

3Ease of operation

If the linear interpolation operation requires three serially dependent operations, then the logic is easy to follow, but it prevents exploitation of data parallelism in SIMD vector registers

Engineering Contradiction:
Improvelogical simplicityVSAvoiddata parallelism exploitation
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the operation into independent parallel tasks that can be assigned to different SIMD lanes simultaneously, allowing wide vector architectures to fully exploit data parallelism while maintaining logical clarity through the structured parallel computation approach

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9766886B2Instruction and logic to provide vector linear interpolation functionality
Publication Date: 2017.09.19 INTEL CORP
  • US9766886B2 patent drawing
  • US9766886B2 patent drawing
  • US9766886B2 patent drawing

AI summary

Instructions and logic provide vector linear interpolation functionality. In some embodiments, responsive to an instruction specifying: a first operand from a set of vector registers, a size of each of the vector elements, a portion of the vector elements upon which to compute linear interpolations, a second operand from a set of vector registers, and a third operand; an execution unit, reads a first, a second and a third value of the size of vector elements from corresponding data fields in the first, the second and the third operand respectively and computes an interpolated value as the first value multiplied by the second value minus the second value multiplied by the third value plus the third value.