Dynamic GPU Load Balancing via Adaptive Rendering Split Lines

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improverendering throughputVSAvoidGPU idle time
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvetask distribution complexityVSAvoidrendering efficiency
Core Design Contradiction:
Device complexityVSProductivity

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

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improverendering capabilityVSAvoidsynchronization delay
Core Design Contradiction:
PowerVSLoss of time

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

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9524138B2Load balancing in a system with multi-graphics processors and multi-display systems
Publication Date: 2016.12.20 NVIDIA CORP
  • US9524138B2 patent drawing
  • US9524138B2 patent drawing
  • US9524138B2 patent drawing

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.