Stereo Rendering Command Buffer with Device Masks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Programming multiple graphics processing units (GPUs) in parallel rendering schemes is inefficient due to high system resource allocation requirements, limiting the number of GPUs that can be used effectively, as existing methods require significant resources to manage common and specific rendering commands across multiple GPUs.

Innovation Solution

The solution involves using device masks to control the execution of commands across multiple GPUs, allowing a single command stream to be delivered to all GPUs, with specific masks designating subsets to execute different viewing transforms and rendering commands, thereby minimizing resource usage and optimizing parallel rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If each GPU is programmed with separate rendering commands and data, then each GPU can execute specific rendering tasks, but system resource allocation increases significantly

Engineering Contradiction:
ImproveGPU-specific rendering command customizationVSAvoidsystem resource allocation
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments rendering commands into two types: common commands that apply to all GPUs and GPU-specific commands that apply to individual GPUs. This segmentation allows the system to minimize resource allocation by only distributing GPU-specific commands to relevant GPUs, rather than duplicating all commands for each GPU.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a command buffer as an intermediary mechanism between the CPU and GPUs. The command buffer stores both common and GPU-specific rendering commands, allowing efficient distribution to multiple GPUs without requiring separate programming for each GPU. This intermediary structure reduces system resource consumption while maintaining GPU-specific customization capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple GPUs are programmed with different rendering commands, then parallel rendering capability increases, but programming overhead increases

Engineering Contradiction:
Improveparallel rendering capabilityVSAvoidprogramming overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges common rendering commands into a single command stream that is distributed to all GPUs simultaneously. This combining approach eliminates redundant programming overhead by ensuring that common commands are executed once and applied to all GPUs, rather than being programmed separately for each GPU.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary action by pre-defining common rendering commands that will be executed by all GPUs before distributing GPU-specific commands. This preliminary preparation reduces the overall programming overhead by establishing the common command framework once, which then serves as the basis for all subsequent GPU-specific rendering operations.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If a large allocation of system resources is made for each GPU, then each GPU can be fully programmed, but the total number of GPUs that can be used is limited

Engineering Contradiction:
ImproveGPU programming completenessVSAvoidnumber of GPUs that can be used
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent applies partial action by providing only the necessary GPU-specific commands to each GPU rather than allocating complete programming resources to each GPU. Common rendering commands are shared across all GPUs, and only the minimal GPU-specific commands are distributed to each individual GPU, reducing the total system resource allocation while maintaining sufficient programming completeness.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7602395B1Programming multiple chips from a command buffer for stereo image generation
Publication Date: 2009.10.13 NVIDIA CORP
  • US7602395B1 patent drawing
  • US7602395B1 patent drawing
  • US7602395B1 patent drawing

AI summary

Multiple graphics devices are operable in parallel to render stereo images using efficient programming techniques. The same command stream is delivered to each graphics device, and device masks are used to control the execution of commands by different graphics devices. A viewing transform command corresponding to a left-eye transform is executed by one device while a viewing transform command corresponding to a right-eye transform is executed another device. Other rendering commands are executed by both devices to render the same image from somewhat different viewpoints.