Index Space Mapping for Fine-Grain Pipeline Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel programming models and APIs, such as CUDA, OpenCL, and SYCL, face challenges in implementing fine-grain pipelining due to the need for complex coordination between pipeline stages, which limits data throughput and efficiency in large-scale programs.

Innovation Solution

The method involves applying static code analysis to break computational tasks into independent work units and defining an index space with mapping parameters that allow consumer processors to access data in buffers before producer processors have completed, enabling fine-grain pipelining without handshake mechanisms, using linear or multidimensional transformations to map indexes to buffer addresses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional parallel programming models (CUDA, OpenCL, SYCL) are used to implement fine-grain pipelining, then coordination between pipeline stages is required, but this increases device complexity and reduces data throughput

Engineering Contradiction:
Improvedata throughputVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the index space into multiple independent ranges, where each range can be processed by different consumer processors without requiring coordination. This segmentation allows parallel execution of work units across pipeline stages while eliminating the need for complex handshake mechanisms, thereby increasing data throughput without increasing device complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by allowing multiple consumer processors to access different ranges of the same buffer simultaneously. This dimensional approach to parallelization enables fine-grain pipelining without coordination overhead, as each consumer processor operates independently on its assigned index range

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

2Productivity

If all producer processors must complete before consumer processors can read data, then data availability is ensured, but this increases loss of time and reduces pipeline efficiency

Engineering Contradiction:
Improvepipeline efficiencyVSAvoidexecution delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables preliminary action by allowing consumer processors to begin executing work units on data that has been partially produced by producer processors. The static code analysis determines index ranges that can be safely accessed before all producers complete, enabling consumers to start work ahead of time and eliminating idle waiting periods in the pipeline

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces mapping parameters as an intermediary layer between the index space and buffer addresses. This mapping enables the system to track which data regions are ready for consumption without requiring complex coordination protocols, allowing consumers to safely access intermediate production results and improving pipeline throughput

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If complex coordination mechanisms are implemented for fine-grain pipelining, then data correctness is maintained, but this increases power consumption

Engineering Contradiction:
Improvedata correctnessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent implements self-service by using static code analysis to automatically determine safe index ranges for consumer processors without requiring runtime coordination or synchronization mechanisms. This self-determined approach maintains data correctness through compile-time analysis while eliminating the power consumption associated with complex runtime coordination protocols

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11467827B1Index space mapping using static code analysis
Publication Date: 2022.10.11 INTEL OVERSEAS FUNDING CORP
  • US11467827B1 patent drawing
  • US11467827B1 patent drawing
  • US11467827B1 patent drawing

AI summary

A method for computing includes providing software source code defining a processing pipeline including multiple, sequential stages of parallel computations, in which a plurality of processors apply a computational task to data read from a buffer. A static code analysis is applied to the software source code so as to break the computational task into multiple, independent work units, and to define an index space in which the work units are identified by respective indexes. Based on the static code analysis, mapping parameters that define a mapping between the index space and addresses in the buffer are computed, indicating by the mapping the respective ranges of the data to which the work units are to be applied. The source code is compiled so that the processors execute the work units identified by the respective indexes while accessing the data in the buffer in accordance with the mapping.