Conflict Detection Instructions for Vectorized Loop Pointer Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current compiler technologies face limitations in vectorizing loops with multiple pointers due to the inability to prove non-overlapping memory accesses, leading to potential conflicts and inefficiencies, especially when range checks are necessary, which incur significant overhead and restrict support to a limited number of pointers.

Innovation Solution

The introduction of conflict detection instructions that utilize various comparison operators, such as less than, less than or equal to, and not equal to, allows for SIMD fashion pointer range checks, enabling more comprehensive and efficient detection of memory access conflicts within loops.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If compiler performs range checks to detect memory access conflicts, then conflict detection accuracy is improved, but instruction overhead and execution time increase significantly

Engineering Contradiction:
Improveconflict detection accuracyVSAvoidinstruction overhead
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent merges multiple scalar range check operations into a single SIMD vector operation. The conflict detection instruction processes multiple pointer ranges simultaneously using vector registers, combining what would otherwise be multiple sequential scalar comparisons into one parallel operation, thereby reducing instruction overhead while maintaining detection accuracy

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent transitions from scalar (single-data-element) conflict detection to vector (multiple-data-elements) conflict detection. By using SIMD architecture, the system processes multiple pointer pairs in parallel across vector registers, adding a dimension of parallelism that reduces the total number of instructions needed while preserving conflict detection capability

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

2Productivity

If compiler supports vectorization of loops with multiple pointers, then productivity is improved, but device complexity increases due to alias analysis limitations

Engineering Contradiction:
Improveloop vectorization capabilityVSAvoidalias analysis complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the conflict detection functionality from the complex alias analysis process. Instead of requiring the compiler to perform sophisticated alias analysis to determine pointer relationships, the patent extracts this into a separate, simpler operation that uses straightforward range comparisons, reducing the complexity burden on the alias analysis component while enabling vectorization

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces conflict detection instructions as an intermediary mechanism between pointer operations and vectorization decisions. This intermediary layer provides explicit conflict information without requiring the compiler to solve the full alias analysis problem, simplifying the compilation process while enabling productive vectorization of loops with multiple pointers

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If traditional scalar conflict detection is used, then ease of implementation is maintained, but productivity decreases due to inability to vectorize loops with multiple pointers

Engineering Contradiction:
Improveimplementation simplicityVSAvoidloop vectorization performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent replaces the mechanical scalar operation system with a vector parallel processing system. By introducing SIMD conflict detection instructions, the system substitutes single-data-element operations with multi-data-element vector operations, maintaining implementation simplicity through straightforward vector comparison logic while dramatically improving productivity through parallel execution of multiple pointer range checks

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9891913B2Method and apparatus for performing conflict detection using vector comparison operations
Publication Date: 2018.02.13 INTEL CORP
  • US9891913B2 patent drawing
  • US9891913B2 patent drawing
  • US9891913B2 patent drawing

AI summary

An apparatus and method are described for performing conflict detection operations. For example, one embodiment of a processor comprises: a first source vector register to store a first set of data elements; a second source vector register to store a second set of data elements; conflict detection logic to perform a specified comparison operation comparing each of the first set of data elements with specified data elements from the second set and generating a set of comparison results, the comparison operation to be selected from a group consisting of a greater than comparison, a less than comparison, a greater than or equal to comparison, a less than or equal to comparison, and a not equal to comparison.