Graphics Command Stream Serialization for GPU Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to the need for explicit synchronization between media processors, limited parallelism caused by resource bottlenecks, and fractional precision limitations in hardware arithmetic, which hinder simultaneous execution and accurate scaling of graphics operations.

Innovation Solution

A method and apparatus that determine dependency relationships between graphics commands based on hardware resource availability, allowing for optimized serialization and batch processing of commands, asynchronous notifications, and improved resource management to enhance parallel execution and scaling precision.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If explicit synchronization is implemented between media processors, then graphics operations can be coordinated, but execution parallelism is reduced and performance is degraded

Engineering Contradiction:
Improvesynchronization coordinationVSAvoidexecution parallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the synchronization control mechanism from the media processor execution flow by introducing a separate command stream serialization layer. The host processor prepares and serializes command streams beforehand, allowing media processors to execute independently without requiring synchronous coordination during runtime, thus maintaining both reliability and parallelism

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies preliminary action by having the host processor pre-serialize command streams and prepare synchronization protocols before media processor execution begins. This advance preparation eliminates the need for real-time synchronization interruptions, enabling media processors to run in parallel while maintaining proper coordination

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If multiple interrupts are used per graphics operation, then operation completion can be tracked, but system overhead increases and parallel execution is prevented

Engineering Contradiction:
Improveoperation completion trackingVSAvoidparallel execution capability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent merges multiple individual operation interrupts into a single batch completion interrupt mechanism. Command streams are processed as batches, and a single interrupt signals the completion of entire batches rather than individual operations, reducing interrupt overhead while maintaining accurate completion tracking through batch status registers

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal interrupt handling mechanism that can track multiple graphics operations simultaneously through a single interrupt channel. The interrupt system is designed to handle batch completions from multiple media processors universally, allowing parallel execution to continue while still providing precise completion notification

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If graphics resources are held until media processors are idle, then resource safety is ensured, but host processor parallel operations are blocked

Engineering Contradiction:
Improveresource safetyVSAvoidhost processor parallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by having the host processor pre-allocate and pre-serialize all necessary graphics resources before submitting command streams to media processors. Resource allocation is decoupled from processor idle status, allowing the host to free resources immediately after submission while media processors independently manage their resource usage throughout execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a command stream buffer and serialization layer as an intermediary between the host processor and media processors. This intermediary manages resource allocation and tracking independently, allowing the host processor to release resources immediately after command submission while the intermediary ensures proper resource management throughout the asynchronous execution process

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If fixed bit-precision is used for scale factors, then hardware multiplication is optimized, but scaling accuracy is limited

Engineering Contradiction:
Improvehardware operation speedVSAvoidscaling accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent segments the scaling operation into two separate passes: a first pass using fixed-bit-precision multiplication for efficient hardware execution, and a second pass that refines the result with additional precision. This segmentation allows the system to benefit from both fast hardware multiplication and high scaling accuracy by combining results from multiple precision levels

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8115773B2Serializing command streams for graphics processors
Publication Date: 2012.02.14 APPLE INC
  • US8115773B2 patent drawing
  • US8115773B2 patent drawing
  • US8115773B2 patent drawing

AI summary

A method and an apparatus for determining a dependency relationship between graphics commands based on availability of graphics hardware resources to perform graphics processing operations according to the dependency relationship are described. The graphics commands may be received from graphics APIs (application programming interfaces) for rendering a graphics object. A graphics driver may transmit a portion or all of the received graphics commands to a graphics processing unit (GPU) or a media processor based on the determined dependency relationship between the graphics commands.