SIMD Vector Packed Tuple Cross-Comparison for Address Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently processing sparse data operations and maintaining SIMD efficiency due to conflicts and the need to preserve scalar program order, especially in operations like histogram calculations where indices may point to the same memory locations, leading to difficulties in concurrent data processing.

Innovation Solution

The introduction of SIMD vector packed tuple cross-comparison instructions that allow for comparison of elements within registers or memory, setting mask bits for each element, and shifting masks to resolve conflicts, enabling efficient address conflict detection and resolution without dependent memory computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SIMD operations are used to process multiple data elements concurrently, then productivity is improved, but device complexity increases due to conflict detection and resolution requirements

Engineering Contradiction:
Improveconcurrent processing capabilityVSAvoidconflict detection and resolution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing address conflict detection through tuple cross-comparison before the actual gather-modify-scatter operations. The comparator logic identifies potential conflicts between address tuples in advance, allowing the system to prepare conflict resolution masks beforehand, thus enabling concurrent processing while managing complexity through early detection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of conflict detection masks and tuple comparison logic that mediates between multiple address tuples. This intermediary layer identifies conflicts without requiring complex interdependencies in the main processing path, allowing SIMD operations to proceed concurrently while conflicts are resolved through the intermediary mask generation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If scatter operations are performed with random indices, then adaptability is improved, but productivity decreases due to difficulty in concurrent processing

Engineering Contradiction:
Improvehandling of random indicesVSAvoidconcurrent processing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the address generation process into distinct tuple structures that can be independently compared. By organizing addresses into fixed-size tuples (e.g., 2-tuples, 4-tuples, 8-tuples) and providing dedicated comparison operations for each segment type, the system can handle random indices adaptively while maintaining concurrent processing efficiency through structured, segment-based operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes parameters by providing specialized tuple comparison instructions for different tuple sizes (2-tuple, 4-tuple, 8-tuple) and different data types (signed, unsigned). These parameter-specific optimizations allow the system to adapt to different index patterns while maintaining high concurrent processing efficiency through instruction-level tuning.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If conflict detection is performed to ensure scalar program order, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvescalar program order preservationVSAvoidconflict detection logic
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses copying by creating comparison copies of address tuples to detect conflicts. Instead of modifying the original address tuples during conflict detection, the system creates duplicate tuple structures that can be safely compared, ensuring scalar program order is preserved while maintaining reliability. The conflict masks are generated from these copied structures without affecting the original data flow.

Inventive Principle:
Principle #26Copying

4Measurement precision

If tuple cross-comparison is implemented for all element combinations, then measurement precision is improved, but productivity decreases due to computational intensity

Engineering Contradiction:
Improveconflict detection accuracyVSAvoidprocessing throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies partial action by implementing tuple cross-comparison only for elements within the same tuple structure rather than all possible element combinations across different tuples. This selective approach maintains measurement precision for detecting conflicts that matter (within-tuple conflicts) while avoiding the excessive computational overhead of comparing every element with every other element, thus preserving productivity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3241120B1Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality
Publication Date: 2020.07.08 INTEL CORP
  • EP3241120B1 patent drawingFigure 1A
  • EP3241120B1 patent drawingFigure 1B
  • EP3241120B1 patent drawingFigure 1C

AI summary

Instructions and logic provide SIMD vector packed tuple cross-comparison functionality. Some processor embodiments include first and second registers with a variable plurality of data fields, each of the data fields to store an element of a first data type. The processor executes SIMD instructions for vector packed tuple cross-comparisons in some embodiments, which for each data field of a portion of data fields in a tuple of the first register, compares its corresponding element with every element of a corresponding portion of data fields in a tuple of the second register and sets mask bits corresponding to elements of the second register portion, in a bit-mask corresponding to unmasked elements of the corresponding first register portion, according to the corresponding comparison. In some embodiments bit-masks are shifted by corresponding elements in data fields of a third register. The comparison type is indicated by an immediate operand.