Immutable GPU Pipeline Objects Reduce Compilation Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing GPU programming frameworks, such as OpenGL, are inefficient due to mismatched APIs with modern GPU hardware, leading to inefficient code execution as they do not accurately represent the distinctions between fixed-function and programmable GPU features, resulting in prolonged compilation times and inefficient resource utilization.

Innovation Solution

A new GPU framework and associated APIs that provide a more accurate representation of the target hardware, allowing developers to define immutable pipeline objects that encapsulate compiled GPU code, reducing the need for repeated compilation and enabling efficient execution by separating fixed and programmable states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If OpenGL framework is used with embedded compiler and runtime coordination, then heterogeneous computing support is improved, but compilation time and execution overhead increase significantly

Engineering Contradiction:
Improveheterogeneous computing supportVSAvoidcompilation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-compiling shader code into binary form during application development or installation, rather than compiling at runtime. The compiled shader binaries are stored and reused across multiple execution contexts, eliminating repeated compilation overhead while maintaining support for heterogeneous GPU architectures through architecture-specific binary generation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating and storing binary copies of compiled shader code that can be reused across multiple rendering operations and applications. Instead of re-compiling shaders each time they are needed, the system copies and reuses the pre-compiled binary representations, significantly reducing compilation time while preserving the ability to target different GPU architectures.

Inventive Principle:
Principle #26Copying

2Ease of operation

If OpenGL state machine model is used with frequent state changes, then programming flexibility is improved, but GPU code generation and compilation frequency increases

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidcode execution efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies segmentation by separating shader code into distinct, independently compilable units (vertex shaders, fragment shaders, geometry shaders) that can be pre-compiled and stored as binary objects. This segmentation allows the system to load and bind only the specific shader binaries needed for each rendering operation, rather than re-compiling entire shader programs, thus maintaining programming flexibility while improving execution efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamics by allowing the rendering system to dynamically bind and switch between pre-compiled shader binary objects at runtime based on the current rendering state. This dynamic binding capability maintains the flexibility of state-based programming while avoiding the overhead of dynamic compilation, as the system simply activates different pre-compiled shader binaries rather than generating new code.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If OpenGL APIs are used that are mismatched to modern GPU hardware, then legacy compatibility is improved, but hardware utilization efficiency deteriorates

Engineering Contradiction:
Improvelegacy compatibilityVSAvoidhardware utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent introduces an intermediary layer in the form of a shader compilation and binding system that sits between the high-level OpenGL API calls and the underlying GPU hardware. This intermediary pre-compiles shaders into binary form optimized for specific GPU architectures and manages the binding of appropriate shader binaries to rendering operations, thereby improving hardware utilization efficiency while maintaining compatibility with legacy OpenGL APIs through the abstraction layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3137985B1Method and system to create a rendering pipeline
Publication Date: 2022.01.26 APPLE INC
  • EP3137985B1 patent drawingFigure 1
  • EP3137985B1 patent drawingFigure 2
  • EP3137985B1 patent drawingFigure 3

AI summary

An innovative GPU framework and related APIs present more accurate representations of the target hardware so that the distinctions between the fixed-function and programmable features of the GPU are perceived by a developer. This permits a program and/or a graphics object generated or manipulated by the program to be understood as not just code, but machine states that are associated with the code. When such an object is defined, the definitional components requiring programmable GPU features can be compiled only once and reused repeatedly as needed. Similarly, when a state change is made, the state changes correspond to the state changes made on the hardware. Additionally, the creation of these immutable objects prevents a developer from inadvertently changing portions of the program or object that cause it to behave differently than intended.