GPU Tile Pipelines with Dynamic Primitive Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing units (GPUs) face challenges in reducing latency, power consumption, and size while implementing tile-based rendering techniques, often requiring trade-offs between these factors.
Innovation Solution
A graphics processing unit (GPU) with a tiling module that includes a plurality of tile pipelines and a tile arbiter, utilizing a dynamic allocation scheme to distribute tile-primitive indications, and a tail pointer cache to manage control streams, allowing parallel processing and efficient tile management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If tile-based rendering techniques are implemented with fixed mapping between tiles and tile pipelines, then device complexity is reduced, but productivity decreases due to idle tile pipelines
Solution Approach 1:
The patent implements dynamic allocation of tiles to tile pipelines, where the mapping between tiles and tile pipelines is not fixed but changes based on current workload. The tile arbiter dynamically determines which tile pipeline processes which tile-primitive indications, allowing the system to adapt to varying primitive distribution patterns and prevent tile pipeline idle time while maintaining manageable complexity through centralized arbitration.
2Productivity
If multiple tile pipelines are used to process tiles in parallel, then productivity increases, but device complexity and power consumption increase
Solution Approach 1:
The system dynamically activates only the necessary number of tile pipelines based on the current workload. The tile arbiter receives tile-primitive indications and dynamically determines which tile pipelines are needed, allowing the GPU to scale power consumption with actual processing needs rather than maintaining all tile pipelines at full power continuously.
Solution Approach 2:
The patent changes the operational parameters of tile pipelines dynamically - specifically, the number of active tile pipelines is adjusted based on workload demands. This parameter change allows the system to optimize between productivity and power consumption by activating additional tile pipelines only when processing capacity is needed.
3Productivity
If dynamic allocation scheme is used to distribute tile-primitive indications, then productivity increases by reducing idle time, but device complexity increases due to arbitration logic
Solution Approach 1:
The tile arbiter is designed as a multi-functional component that handles multiple tasks: receiving tile-primitive indications from geometry processing logic, determining optimal tile pipeline assignments dynamically, managing the allocation of tiles to available tile pipelines, and coordinating to prevent conflicts. This universal arbitration logic consolidates multiple control functions into a single component, managing complexity while enabling dynamic allocation benefits.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A graphics processing unit (GPU) and method are described for processing primitives using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises a tiling module, which comprises a plurality of tile pipelines and a tile arbiter. The tile arbiter receives tile-primitive indications, wherein each of the tile-primitive indications indicates an association between a tile and a set of one or more primitives. The tile arbiter determines which of the tile pipelines to send each of the tile-primitive indications to in accordance with a dynamic allocation scheme which does not have a fixed mapping between tiles and tile pipelines. The tile arbiter sends each of the tile-primitive indications to the tile pipeline determined for that tile-primitive indication. Each of the tile pipelines is configured to: receive the tile-primitive indications that are sent to that tile pipeline by the tile arbiter; and use the received tile-primitive indications to, for each of the tiles for which a tile-primitive indication is received at the tile pipeline, include in a control stream for that tile, indications of primitives that are present within that tile.