Mask Register Update for Sparse Vector Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies in recursive vector computation due to the inability to easily vectorize operations where the number of iterations differs for different data elements, leading to unnecessary computation and underutilization of vector register slots.

Innovation Solution

The use of a pair of vector registers and mask registers, where one vector register serves as an accumulator and the other provides new data elements to fill unused slots, with instructions like RWMASKUPDATE and SPARSEMOV to manage and update masks for efficient data movement and computation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor performs computation over all elements including those that satisfy the condition, then the vector register slots are fully utilized, but unnecessary computation is performed on elements that do not need processing

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidunnecessary computation
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies local quality by using mask registers to differentiate between elements that need computation and those that don't. Each mask bit corresponds to a specific vector element, allowing the processor to apply different treatment (compute or skip) to each element individually based on its properties, thus avoiding unnecessary computation on elements that satisfy the termination condition

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by performing computation only on the subset of vector elements that require processing, rather than uniformly processing all elements. The mask registers enable selective computation across the vector, applying the computation operation only where needed while skipping elements that have already satisfied their termination conditions

Inventive Principle:
Principle #16Partial or excessive action

2Loss of energy

If the processor skips computation for elements that satisfy the condition, then unnecessary computation is avoided, but vector register slots remain unutilized reducing efficiency

Engineering Contradiction:
Improvecomputation wasteVSAvoidvector register utilization
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent applies discarding and recovering by discarding (skipping computation for) elements that have satisfied their termination conditions, while simultaneously recovering (reusing) the vector register slots occupied by these elements to store new input data for elements that still need processing. This is achieved through the coordinated action of mask registers tracking which elements need computation and data movement operations filling available slots

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The patent implements dynamics by making the vector register contents adaptive - the register dynamically switches between holding output results for completed elements and input data for elements needing computation. The mask registers enable the system to dynamically identify and rearrange which elements should be computed, allowing flexible adaptation to varying computation requirements across different vector elements

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If traditional scalar processing is used for recursive computations with varying iterations, then each element can be processed independently, but the processing time increases significantly compared to vectorized approaches

Engineering Contradiction:
Improvehandling varying iterationsVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies segmentation by dividing the vector into elements with different computation requirements tracked by individual mask bits. This allows the processor to segment the computation into two groups: elements needing computation and elements ready for termination. The mask registers enable independent tracking and processing of each segment, maintaining adaptability to varying iteration counts while enabling parallel vectorized execution

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements universality by creating a unified vectorized processing framework that handles elements with different iteration requirements through the same computational structure. The mask registers provide a universal mechanism for controlling computation based on element-specific conditions, allowing a single vectorized loop to efficiently process both elements needing computation and elements ready for termination without requiring separate processing paths

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

Data Source

PatentUS10503505B2Read and write masks update instruction for vectorization of recursive computations over independent data
Publication Date: 2019.12.10 INTEL CORP
  • US10503505B2 patent drawing
  • US10503505B2 patent drawing
  • US10503505B2 patent drawing

AI summary

A processor executes a mask update instruction to perform updates to a first mask register and a second mask register. A register file within the processor includes the first mask register and the second mask register. The processor includes execution circuitry to execute the mask update instruction. In response to the mask update instruction, the execution circuitry is to invert a given number of mask bits in the first mask register, and also to invert the given number of mask bits in the second mask register.