GPU Effect Graph Execution Reordering to Reduce Flushes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Tile-based GPUs face challenges in minimizing flush operations during image processing, as they typically issue a flush each time a render target is switched, leading to increased memory and bandwidth usage, especially in devices with limited resources.

Innovation Solution

The solution involves reordering the execution of operations in an effect graph to defer pixel writing operations until multiple operations can execute sequentially, thereby allocating textures as render targets fewer times, and using heuristics to determine the optimal order and memory allocation to minimize flushes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the GPU issues a flush each time a render target is switched, then the rendering operations can be executed correctly, but the number of flush operations increases leading to increased memory usage and bandwidth consumption

Engineering Contradiction:
Improverendering correctnessVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary analysis of the effect graph to identify operations that write to the same render target and schedules them to execute sequentially before the target is switched. This preliminary ordering prevents premature flush operations, allowing multiple operations to share the same render target allocation without requiring intermediate flushes, thus reducing memory usage while maintaining rendering correctness

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the execution schedule of operations based on real-time memory availability and render target usage patterns. By dynamically reordering operations and deferring non-critical writes, the system optimizes the balance between rendering correctness and memory consumption, reducing the frequency of flush operations without compromising the final render output

Inventive Principle:
Principle #15Dynamics

2Reliability

If the GPU issues a flush each time a render target is switched, then the rendering operations can be executed correctly, but the number of flush operations increases leading to increased bandwidth consumption

Engineering Contradiction:
Improverendering correctnessVSAvoidbandwidth consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary analysis of the effect graph to identify operations that write to the same render target and schedules them to execute sequentially before the target is switched. This preliminary ordering prevents premature flush operations, allowing multiple operations to share the same render target allocation without requiring intermediate flushes, thus reducing bandwidth consumption while maintaining rendering correctness

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous rendering operations by minimizing interruptive flush operations. By batching multiple write operations into continuous execution sequences and reducing the frequency of render target switches, the system sustains continuous useful action in the rendering pipeline, thereby reducing overall bandwidth consumption while ensuring rendering correctness

Inventive Principle:
Principle #20Continuity of useful action

3Quantity of substance

If operations are reordered to reduce flush operations, then memory usage and bandwidth consumption are reduced, but the complexity of operation scheduling increases

Engineering Contradiction:
Improvememory usageVSAvoidoperation scheduling complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system implements self-service scheduling where the effect graph operations themselves provide information about their dependencies and render target requirements. This self-annotated data allows the scheduling system to automatically optimize operation ordering without requiring complex external analysis, reducing scheduling complexity while achieving reduced memory usage through intelligent operation batching

Inventive Principle:
Principle #25Self-service

4Quantity of substance

If operations are reordered to reduce flush operations, then memory usage and bandwidth consumption are reduced, but the complexity of operation scheduling increases

Engineering Contradiction:
Improvebandwidth consumptionVSAvoidoperation scheduling complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system implements self-service scheduling where the effect graph operations themselves provide information about their dependencies and render target requirements. This self-annotated data allows the scheduling system to automatically optimize operation ordering without requiring complex external analysis, reducing scheduling complexity while achieving reduced bandwidth consumption through intelligent operation batching and flush minimization

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9019292B2Reordering graph execution for processing optimization
Publication Date: 2015.04.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9019292B2 patent drawing
  • US9019292B2 patent drawing
  • US9019292B2 patent drawing

AI summary

Methods are provided for reordering operations in execution of an effect graph by graphics processing unit. Memory availability is evaluated for storing images rendered using the effect graph. Memory is allocated for multiple parallel intermediate textures that store images. Operations that write to these textures are executed. It is then determined that there is not sufficient memory to perform additional parallel operations. The memory currently allocated is flushed, and memory for an upper-level texture is allocated. The operations that write pixels to the upper-level texture are executed.