Multi-Pipeline Graphics Super-Tiling for Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional graphics processing systems face performance bottlenecks due to load balancing issues and inefficient resource utilization, particularly when processing complex graphics and high-resolution video, leading to wasted computing resources and decreased performance.
Innovation Solution
A multi-pipeline graphics processing system that subdivides the frame buffer into a repeating pattern of square regions or 'tiles,' where each graphics pipeline processes an equal portion of the data, ensuring balanced load distribution and improved texture cache efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If the frame buffer is partitioned into vertical strips for multi-pipeline processing, then processing time is reduced and refresh rate requirement is met, but load balancing deteriorates when all primitives of an object are located in one strip
Solution Approach 1:
The frame buffer is divided into multiple vertical strips, each assigned to a separate graphics processing circuit. This segmentation allows parallel processing of different portions of the frame, reducing overall processing time while maintaining the ability to handle complex graphics scenarios through distributed computation across multiple circuits.
Solution Approach 2:
Each graphics processing circuit is assigned specific vertical strips based on the spatial distribution of primitives. The system adapts the assignment dynamically, assigning more strips to circuits that receive fewer primitives and fewer strips to circuits that receive more primitives, thereby achieving load balancing while maintaining efficient parallel processing.
2Productivity
If strip width is increased to reduce the number of strips, then load balancing improves, but cache efficiency deteriorates due to reduced number of cache lines
Solution Approach 1:
The system dynamically adjusts the number of active graphics processing circuits based on the distribution of primitives across strips. When primitives are unevenly distributed, the system activates only the necessary number of circuits, optimizing both load balancing and cache utilization. This dynamic adaptation allows the system to maintain efficient cache lines while achieving good load balancing.
Solution Approach 2:
The system changes the effective number of active processing circuits as a parameter based on the primitive distribution pattern. By adjusting which circuits are active rather than fixing a constant number of circuits, the system optimizes the balance between load distribution and cache efficiency, achieving both goals simultaneously.
3Speed
If conventional strip partitioning is used, then processing speed is maintained, but computing resources are wasted when only half of the graphics processing circuits are operating
Solution Approach 1:
The system dynamically activates only the necessary number of graphics processing circuits based on the actual workload distribution. When primitives are concentrated in fewer strips, the system activates only those circuits, avoiding waste of computing resources while maintaining high processing speed through the active circuits. This dynamic activation ensures optimal resource utilization without sacrificing performance.
Data Source
AI summary
A graphics processing circuit includes at least two pipelines operative to process data in a corresponding set of tiles of a repeating tile pattern, a respective one of the at least two pipelines operative to process data in a dedicated tile, wherein the repeating tile pattern includes a horizontally and vertically repeating pattern of square regions. A graphics processing method includes receiving vertex data for a primitive to be rendered; generating pixel data in response to the vertex data; determining the pixels within a set of tiles of a repeating tile pattern to be processed by a corresponding one of at least two graphics pipelines in response to the pixel data, the repeating tile pattern including a horizontally and vertically repeating pattern of square regions; and performing pixel operations on the pixels within the determined set of tiles by the corresponding one of the at least two graphics pipelines.


