Split Push Buffer Rendering for Heterogeneous GPU Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems with heterogeneous graphics processing units (GPUs) face inefficiencies in rendering frames due to performance disparities between integrated and discrete GPUs, leading to idle time and reduced overall performance in distributed rendering tasks.

Innovation Solution

Implement a method where a slower GPU begins rendering a frame and a faster GPU takes over when the latter completes a previous frame, allowing the slower GPU to start rendering a subsequent frame, with command buffers managing the execution and state data transfer between GPUs to optimize workload distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If heterogeneous GPUs are used to reduce cost and increase availability, then system cost and component availability improve, but rendering efficiency and system performance deteriorate due to performance disparities between integrated and discrete GPUs

Engineering Contradiction:
Improvesystem costVSAvoidrendering efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The rendering workload is segmented into multiple command buffers, with each buffer containing commands for a specific frame. This allows the system to distribute different frame rendering tasks to different GPUs, enabling heterogeneous GPUs to work in parallel without requiring them to render at the same speed. The segmentation of work into discrete, manageable units (command buffers) resolves the contradiction by allowing cost-effective heterogeneous components to achieve efficient system-level performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically assigns command buffer execution to different GPUs based on their availability and performance characteristics. Instead of statically assigning frames to specific GPUs, the system allows any available GPU to pick up and execute the next command buffer, creating a dynamic workload distribution that adapts to the varying speeds of heterogeneous GPUs. This dynamic approach maximizes rendering efficiency while accommodating the performance disparities between integrated and discrete GPUs.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If traditional parallel rendering methods are used with heterogeneous GPUs, then component availability improves, but idle time increases due to waiting for slower GPUs to complete frames

Engineering Contradiction:
Improvecomponent availabilityVSAvoididle time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system prepares multiple command buffers in advance, each containing the complete set of rendering commands for a different frame. This preliminary preparation allows faster GPUs to immediately pick up and execute subsequent command buffers without waiting for slower GPUs to complete their current frame. The preliminary organization of work into discrete command buffers eliminates idle time by ensuring that rendering work is always available for any GPU that becomes free.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system ensures continuous rendering by maintaining a pipeline of pre-prepared command buffers. When one GPU finishes rendering a frame, another GPU is already ready with the next command buffer to execute, ensuring that rendering action continues without interruption. This continuity eliminates the idle time that would otherwise occur when GPUs wait for slower counterparts to complete frames, while still allowing heterogeneous GPUs to work in parallel.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If command buffers are used to manage rendering commands, then workload distribution improves, but system complexity increases due to state data transfer and coordination between GPUs

Engineering Contradiction:
Improveworkload distributionVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces a command buffer as an intermediary data structure that encapsulates all rendering commands and state information needed for a complete frame. This intermediary absorbs the complexity of workload distribution and state management, providing a simple interface where GPUs can independently pick up and execute command buffers without requiring complex coordination protocols. The command buffer acts as a self-contained unit that carries all necessary information, reducing system complexity while enabling efficient workload distribution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8941669B1Split push buffer rendering for scalability
Publication Date: 2015.01.27 NVIDIA CORP
  • US8941669B1 patent drawing
  • US8941669B1 patent drawing
  • US8941669B1 patent drawing

AI summary

Frames are rendered by multiple graphics processors (GPUs), which may be heterogeneous. Graphics processors split the execution of the command in a push buffer of a frame. One GPU begins rendering a frame, and a second GPU takes over rendering that frame after the second GPU is done rendering a previous frame. The second GPU may then begin rendering a subsequent frame.