SIMD Channel Packing for Graphics Control Flow Divergence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel graphics data processing, the efficiency of SIMD execution decreases due to program control-flow divergence, leading to underutilization of functional units and reduced register file utilization, especially when fewer than 8 channels are active out of 16, resulting in inefficient processing.

Innovation Solution

A control flow mechanism that packs active SIMD channels to the beginning of an SIMD vector machine using a narrower SIMD-width and implements a profiler to detect diverging control flow, redirecting program control to execute one lane at a time, exploiting parallelism within the lane, and re-configures hardware based on tile data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SIMD execution is used to improve processing efficiency, then parallel processing capability is enhanced, but efficiency decreases when program control-flow diverges among channels

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcontrol-flow divergence handling
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the 16 SIMD channels into multiple groups based on their control-flow execution status. Active channels (those following the same control-flow path) are grouped together and executed efficiently as a unit, while inactive channels are separated. This segmentation allows the system to maintain high SIMD efficiency for compatible channels while isolating the impact of control-flow divergence.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic channel grouping where the composition of SIMD groups changes based on runtime control-flow behavior. The system continuously monitors which channels are active and reconfigures the grouping accordingly, transitioning between different execution modes (full SIMD, partial SIMD, or scalar execution) to optimize performance for the current control-flow state.

Inventive Principle:
Principle #15Dynamics

2Productivity

If 16 SIMD channels are allocated to maximize parallel processing, then processing capacity is increased, but functional unit utilization drops to less than 50% when fewer than 8 channels are active

Engineering Contradiction:
Improveparallel processing capacityVSAvoidfunctional unit utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the 16 SIMD channels into multiple smaller groups (e.g., two groups of 8 channels each). When fewer than 8 channels are active, the system can configure execution to use only the necessary channels within a group, avoiding the waste of allocating all 16 channels. This segmentation enables finer-grained control over resource utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically changes the effective SIMD width parameter based on the number of active channels. Instead of always using 16-channel SIMD execution, the system adjusts the execution width to match the actual number of active channels (e.g., switching to 8-channel or 4-channel execution when appropriate), thereby improving functional unit utilization while maintaining maximum possible parallel processing capacity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If compiler assigns variables to 16-wide registers for SIMD execution, then data throughput is improved, but register file utilization is reduced due to inactive channels

Engineering Contradiction:
Improvedata throughputVSAvoidregister file utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the register file usage to match the segmented channel groups. Instead of allocating full 16-wide registers for all channels, the system allocates register width based on the number of active channels in each group. This reduces the total register file utilization requirement while maintaining adequate data throughput for the active processing channels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts the register width parameter based on the active channel count. When fewer than 8 channels are active, the system reduces the register file allocation from 16-wide to a smaller width (e.g., 8-wide or 4-wide), optimizing register file utilization while still providing sufficient throughput for the reduced number of active processing channels.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11537403B2Control flow mechanism for execution of graphics processor instructions using active channel packing
Publication Date: 2022.12.27 INTEL CORP
  • US11537403B2 patent drawing
  • US11537403B2 patent drawing
  • US11537403B2 patent drawing

AI summary

An apparatus to facilitate control flow in a graphics processing system is disclosed. The apparatus includes logic a plurality of execution units to execute single instruction, multiple data (SIMD) and flow control logic to detect a diverging control flow in a plurality of SIMD channels and reduce the execution of the control flow to a subset of the SIMD channels.