GPU Multi-Rendering with Tile Progress Checks for Safe Overlap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face inefficiencies due to idle time in processor cores when initiating subsequent renders before previous renders are completed, particularly when renders are not independent, leading to potential data access issues and incorrect data reading.

Innovation Solution

A graphics processing unit that allows simultaneous processing of multiple renders by maintaining a progress indication to ensure data access is only granted when the previous render is complete for a memory region, using scheduling logic to allocate tiles across processor groups and a set-aside buffer to manage resource access requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If subsequent renders are initiated before previous renders are completed to reduce idle time, then processor core utilization is improved, but data access errors and incorrect data reading occur

Engineering Contradiction:
Improveprocessor core utilizationVSAvoiddata access correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

A progress indication mechanism acts as an intermediary between the scheduler and memory access units. This progress indication tracks the completion status of previous renders and mediates memory access requests, allowing the system to grant access only when data is ready while maintaining overlapping render operations for improved processor utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If renders are processed sequentially to ensure data completeness, then data access correctness is maintained, but processor core idle time increases

Engineering Contradiction:
Improvedata access correctnessVSAvoidprocessor idle time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by initiating subsequent renders before previous renders are fully complete. The progress indication mechanism is updated in advance to track completion status, enabling the scheduler to make informed decisions about when to grant memory access, thus reducing idle time while maintaining data correctness.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If memory access is restricted until previous render completion to prevent data errors, then data access correctness is improved, but rendering throughput is reduced

Engineering Contradiction:
Improvedata access correctnessVSAvoidrendering throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory access control mechanism is made dynamic through the progress indication system. Instead of static blocking until completion, the system dynamically adjusts access permissions based on real-time progress tracking, allowing overlapping renders to proceed with controlled memory access, thereby improving throughput while maintaining correctness.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12354208B2Multi-rendering in graphics processing units using render progression checks
Publication Date: 2025.07.08 IMAGINATION TECH LTD
  • US12354208B2 patent drawing
  • US12354208B2 patent drawing
  • US12354208B2 patent drawing

AI summary

A graphics processing unit having multiple groups of processor cores for rendering graphics data for allocated tiles and outputting the processed data to regions of a memory resource. Scheduling logic allocates sets of tiles to the groups of processor cores to perform a first render, and at a time when at least one of the groups has not completed processing its allocated sets of one or more tiles as part of the first render, allocates at least one set of tiles for a second render to one of the other groups of processor cores for processing. Progress indication logic indicates progress of the first render, indicating regions of the memory resource for which processing for the first render has been completed. Progress check logic checks the progress indication in response to a request for access to a region of the memory resource as part of the second render and enables access that region of the resource in response to an indication that processing for the first render has been completed for that region.