GPU Register Promotion for Array-of-Structures Control Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern GPUs face inefficiencies in SIMT computing due to lock-step execution and redundant operations, particularly when handling arrays of structures and non-uniform memory accesses, leading to poor resource utilization and increased memory access overhead.

Innovation Solution

The introduction of access vector metadata in the compiler's intermediate representation to preserve structure type information, combined with SSA form and data flow analysis, allows for precise register promotion and optimization of memory access patterns, even in the presence of complex control flow and non-constant stores/loads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

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

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

Solution Approach 1:

The patent segments the thread block execution into multiple warps, where each warp contains a subset of threads that can execute independently. This allows divergent control-flow paths to be handled at the warp level rather than requiring all threads to wait, thereby improving resource utilization while maintaining the SIMT architecture's instruction fetching efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic warp scheduling that allows the GPU to switch between different warps based on execution progress and divergence patterns. This dynamic reorganization enables better utilization of computing resources by keeping active warps executing while others are handling divergent paths, resolving the contradiction between simplified instruction fetching and resource utilization.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If all threads execute loop count increment in lock-step, then SIMT execution simplicity is maintained, but redundant operations increase reducing performance

Engineering Contradiction:
ImproveSIMT execution simplicityVSAvoidperformance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent extracts the loop count increment operation from the mandatory lock-step execution path and handles it separately for threads that have completed their work. This allows threads to exit loops independently without forcing all threads to continue executing redundant increment operations, thereby improving performance while maintaining SIMT execution simplicity for the core computation paths.

Inventive Principle:
Principle #2Taking out (Extraction)

3Stability of the object's composition

If threads calculate the same branch conditions and base addresses, then control flow consistency is maintained, but redundant calculations increase memory access overhead

Engineering Contradiction:
Improvecontrol flow consistencyVSAvoidmemory access overhead
Core Design Contradiction:
Stability of the object's compositionVSUse of energy by moving object

Solution Approach 1:

The patent merges identical branch condition calculations and base address computations across threads by detecting when multiple threads perform the same calculations and consolidating them into a single execution. This reduces redundant memory accesses and computational overhead while maintaining control flow consistency, as the merged results are then broadcast to all threads that need them.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20260044342A1Proactive register promotion of aggregates amid control flow for GPU workloads
Publication Date: 2026.02.12 MEDIATEK INC
  • US20260044342A1 patent drawing
  • US20260044342A1 patent drawing
  • US20260044342A1 patent drawing

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. The apparatus assigns metadata to each of the identified load and store operations. 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. One or more indices of the array accessed by the load and store operations are not known at compile time.