Dynamic GPU Load Balancing via Adaptive Rendering Split Lines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-GPU, multi-display systems, the disparity in graphics complexity across displays leads to inefficiencies due to idling GPUs, as the GPU handling the most complex portion of the scene finishes rendering last, causing other GPUs to remain idle, which negatively impacts user experience.
Innovation Solution
Implement a method for adaptive load balancing by redistributing rendering tasks based on feedback data, where GPUs with lighter loads take on portions of the scene from the heavily loaded GPU, ensuring each GPU handles a roughly equivalent workload, and synchronizing frame buffers for synchronized display.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If each GPU renders a static partition of the scene independently, then each GPU can process its assigned portion simultaneously, but GPUs with lighter loads finish earlier and remain idle while the heavily loaded GPU completes rendering
Solution Approach 1:
The patent implements dynamic load balancing by allowing GPU responsibilities to change over time. Instead of static partitioning, the system dynamically reassigns scene portions to different GPUs based on real-time load conditions, enabling lighter-loaded GPUs to take on additional work from heavily loaded GPUs, thus eliminating idle time while maintaining high rendering throughput
Solution Approach 2:
The system employs feedback mechanisms where GPUs report their rendering status and load conditions to a central controller. Based on this feedback, the controller dynamically reassigns rendering tasks to balance the load across GPUs, ensuring that no GPU remains idle while maintaining overall rendering efficiency
2Device complexity
If the scene is divided into static partitions for each GPU, then the distribution of rendering tasks is simple to manage, but the complexity disparity between different scene portions causes uneven rendering times across GPUs
Solution Approach 1:
The patent transitions from static to dynamic scene partitioning. The system continuously monitors rendering complexity and dynamically reassigns scene portions to GPUs based on current load conditions, allowing the partitioning strategy to adapt to varying scene complexities while maintaining manageable task distribution through automated control
3Power
If multiple GPUs are used to render different portions of the scene, then the overall rendering capability is increased, but synchronization delays occur when GPUs finish rendering at different times
Solution Approach 1:
The patent ensures continuous useful action by dynamically balancing the load across GPUs so that they complete rendering tasks simultaneously or near-simultaneously. This eliminates idle waiting time during synchronization while maintaining the enhanced rendering capability provided by multiple GPUs, as all GPUs remain actively engaged throughout the rendering process
Data Source
AI summary
In typical embodiments a three GPU configuration is provided comprising three discrete video cards, each connected to a standard monitor placed horizontally for a 3× horizontal resolution. In this configuration, depending on the load on each GPU, the vertical split lines are dynamically adjusted. To adjust the load balancing according to these virtual split lines, the rendering clip rectangle of each GPU is adjusted, in order to reduce the number of pixels rendered by the heavily loaded GPU. These split lines define the boundary of the scene to be rendered by each GPU, and, according to some embodiments, may be moved horizontally. Thus for example if a GPU has a more complex rendering clip polygon to render than the other GPUs, the neighboring GPUs may render the rendering clip polygon it displays plus a portion of the rendering clip polygon to be displayed by heavily loaded GPU. The assisting GPUs transmit to the heavily loaded GPU the portion of the rendering clip polygon to be displayed by GPU via the chipset with a peer-to-peer protocol or through a communication bus. The split line is dynamically adjusted after each scene.


