GPU Register Promotion for Arrays of Structures in Divergent Control Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern GPUs face inefficiencies in SIMT computing due to lock-step execution models leading to poor resource utilization, redundant calculations, and excessive memory accesses, particularly when dealing with arrays of structures and non-uniform data access patterns.

Innovation Solution

A method and apparatus that utilize access vector metadata and Static Single Assignment (SSA) algorithms to preserve structure type information and perform data flow analysis, enabling efficient register promotion and scalarization even in the presence of complex control flows and non-constant data accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If lock-step execution model is used in SIMT, then program counter and instruction fetching overhead is reduced, but computing resource utilization deteriorates due to threads waiting on divergent control flow paths

Engineering Contradiction:
Improveprogram counter and instruction fetching overheadVSAvoidcomputing resource utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the thread block execution into multiple warp groups, allowing different segments (warp groups) to execute different control flow paths simultaneously. Instead of all threads executing in lock-step, the thread block is divided into segments that can diverge and execute independently, resolving the contradiction between reduced overhead and maintained utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic execution paths where threads can transition between different execution segments based on control flow conditions. Threads are no longer statically bound to a single lock-step execution path but can dynamically join different warp groups and execute different code paths, maintaining high utilization while managing complexity.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If all threads execute in lock-step, then program counter management is simplified, but redundant calculations increase as threads perform unnecessary operations while waiting

Engineering Contradiction:
Improveprogram counter managementVSAvoidredundant calculations
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent extracts the active threads from the waiting threads by forming separate warp groups. Only the active threads in each warp group execute instructions during their respective time slices, while waiting threads are excluded from execution. This eliminates redundant calculations for waiting threads while maintaining simplified program counter management within each active warp group.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements periodic execution where different warp groups are activated in alternating time slices. Each warp group executes periodically during its designated time slice, allowing threads to be active only when needed rather than continuously executing redundant operations. This periodic activation pattern reduces redundant calculations while maintaining manageable program counter state.

Inventive Principle:
Principle #19Periodic action

3Adaptability or versatility

If threads access array elements with non-constant indices, then data access flexibility is improved, but register promotion becomes difficult when access patterns are complex

Engineering Contradiction:
Improvedata access flexibilityVSAvoidregister promotion complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by performing register promotion at the warp group level rather than requiring uniform promotion across all threads. Each warp group can have its own set of promoted registers tailored to its specific access pattern. This allows flexible data access with non-constant indices while managing register promotion complexity locally within each warp group rather than globally across all threads.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent performs preliminary register promotion for each warp group before execution, analyzing the specific access patterns of that warp group and pre-loading necessary data into registers. This preliminary action allows flexible non-constant indexing during execution while the complexity of register promotion is resolved in advance for each specific warp group's access pattern.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4693024A1Proactive register promotion of aggregates amid control flow for GPU workloads
Publication Date: 2026.02.11 MEDIATEK INC
  • EP4693024A1 patent drawingFigure 1
  • EP4693024A1 patent drawingFigure 2
  • EP4693024A1 patent drawingFigure 3(A)~3(B)

AI summary

In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus identifies load and store operations in program code that access an array of structures (1102). The apparatus assigns metadata to each of the identified load and store operations (1104). The metadata associated with each operation represents a structure of the array. The apparatus generates oracle conditions for the program code based on the metadata to facilitate register promotion (1106). One or more indices of the array accessed by the load and store operations are not known at compile time.