Unified CPU GPU Procedural Texture Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current procedural texture generation methods are inefficient and lack real-time capability, especially when utilizing both CPU and GPU resources, due to asymmetrical memory access and independent CPU and GPU implementations, leading to suboptimal performance and increased computation time.

Innovation Solution

A method for generating procedural textures that leverages a unified CPU/GPU memory architecture, where filters are executed on their preferred target based on operations, memory access patterns, and hardware capabilities, with the sequencer traversing the graph to optimize filter execution between CPU and GPU, and optionally utilizing parallel execution paths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If procedural textures are generated using traditional CPU or GPU implementations, then the generation can be performed, but the computation time is excessive and real-time capability is not achieved

Engineering Contradiction:
Improvetexture generation speedVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the procedural texture generation process into multiple independent filters organized in a calculation graph. Each filter can be executed independently on either CPU or GPU based on its characteristics, allowing parallel execution and optimizing the use of both processing units to reduce overall computation time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic execution model where the sequencer traverses the calculation graph and determines at runtime which calculation unit (CPU or GPU) should execute each filter based on current system state, memory availability, and filter characteristics. This dynamic allocation optimizes rendering speed and enables real-time operation.

Inventive Principle:
Principle #15Dynamics

2Productivity

If CPU and GPU are used independently for procedural texture generation, then each can operate with its own memory architecture, but the overall performance is suboptimal and computation time increases

Engineering Contradiction:
Improverendering speedVSAvoidmemory architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a unified procedural texture generation system that can execute filters on either CPU or GPU based on their respective strengths. The calculation graph and sequencer provide a universal framework that manages both calculation units, allowing the system to leverage the sophisticated operations of CPU cores and the parallel processing power of GPU calculation units for optimal rendering speed.

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

3Productivity

If all filters are executed on a single calculation unit, then the implementation is simpler, but the rendering speed is reduced and real-time capability is not achieved

Engineering Contradiction:
Improverendering speedVSAvoidexecution management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the calculation graph into multiple filters that can be distributed across CPU and GPU. The sequencer manages this segmentation by traversing the graph and assigning filters to appropriate calculation units based on their characteristics and current system state, enabling parallel execution and improved rendering speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The sequencer acts as an intermediary that manages the complex coordination between CPU and GPU execution. It traverses the calculation graph, determines the optimal execution unit for each filter, and handles the coordination required for parallel execution, thereby managing the complexity while enabling faster rendering.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If data is transferred between CPU and GPU memory, then both processing units can be utilized, but the transfer time is prohibitive and undermines the benefits of using both units

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidmemory transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the calculation graph to identify filters that can execute independently without requiring data transfer between CPU and GPU. By organizing filters in a way that maximizes independent execution paths, the system minimizes the need for expensive memory transfers while still utilizing both processing units in parallel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis of the calculation graph to determine the optimal execution plan before runtime. This allows the sequencer to pre-identify which filters should execute on which unit to minimize data transfer requirements, and to prepare execution paths that avoid unnecessary memory transfers between CPU and GPU.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2898478B1Hybrid engine for central processing unit and graphics processing unit
Publication Date: 2018.07.04 ALLEGORITHMIC
  • EP2898478B1 patent drawingFigure 1~2
  • EP2898478B1 patent drawingFigure 3~4
  • EP2898478B1 patent drawingFigure 5

AI summary

The invention relates to a method for generating procedural textures for a processor having a unified CPU/GPU memory architecture, enabling textures for content managed by a graphics card (GPU) to be generated, and comprising the steps of receiving the data of a graph consisting of a plurality of filters and sequentially scanning said graph in order to enable, for each scanned filter: to identify the processor preselected for executing said filter, to receive the instructions of the preselected version of the filter, to receive the parameters of the current filter, to receive the addresses of the buffers of the current filter, to apply the values provided for the inputs of filters with digital value, to execute the instructions of the filter with the adjusted parameters, and to store the intermediate results obtained; and, when all the filters of the graph have been executed, generating at least one display texture.