Unified CPU GPU Procedural Texture Generation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
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.
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
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.
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.
Data Source
Figure 1~2
Figure 3~4
Figure 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.