Execution Graph Resource Selection for Media Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing programs face challenges in efficiently executing media modification functions across different hardware resources like CPUs and GPUs, as they often require manual specification of resources, which is time-consuming and inefficient, especially when legacy functions need to be executed on updated hardware.

Innovation Solution

The system receives a resource-independent input graph from the user indicating functions to be performed on media input and automatically determines the optimal set of resources for execution, reducing memory footprint, execution time, and avoiding overuse of a single resource by converting data between resources as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual specification of hardware resources is required for executing data processing functions, then execution control is precise, but system complexity and user input time increase

Engineering Contradiction:
Improveease of resource specificationVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system automatically determines and selects appropriate hardware resources for executing data processing functions without requiring manual user specification. The resource determination module autonomously analyzes the input graph and selects optimal execution resources, making the system self-serve in resource allocation decisions

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system is designed to handle multiple types of data processing functions (image processing, audio processing, video processing) across different hardware resources (CPU, GPU, specialized processors) through a unified framework. The single system can adapt to various function types and hardware configurations without requiring separate manual configuration for each case

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

2Productivity

If multiple hardware resources are available for executing data processing functions, then execution efficiency improves, but resource selection complexity increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoidresource selection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary resource determination by analyzing the input graph and pre-selecting appropriate hardware resources before actual function execution. The resource determination module prepares the execution plan in advance, identifying which resources to use based on function characteristics and hardware capabilities

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes execution parameters by dynamically selecting different hardware resources based on the specific data processing function being executed. The resource selection adapts parameters such as processing architecture type (CPU vs GPU vs specialized processor) according to the function requirements and available hardware

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If data conversions between different resources are performed, then resource flexibility improves, but execution time increases

Engineering Contradiction:
Improveresource flexibilityVSAvoidexecution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary resource determination and conversion planning before execution, identifying necessary data conversions between different hardware resources in advance. By pre-planning the execution graph with appropriate conversion nodes, the system minimizes runtime overhead

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8549529B1System and method for executing multiple functions execution by generating multiple execution graphs using determined available resources, selecting one of the multiple execution graphs based on estimated cost and compiling the selected execution graph
Publication Date: 2013.10.01 ADOBE INC
  • US8549529B1 patent drawing
  • US8549529B1 patent drawing
  • US8549529B1 patent drawing

AI summary

Various embodiments herein provide one or more systems, methods, software, and data structures for executing multiple functions using more than one resource within a computing system. Examples of functions comprise data processing filters and effects. Resources include, for example, a central processing unit (CPU) and a graphics processing unit (GPU). Based on an input graph received from a user, one or more execution graphs may be generated to indicate the resources to be used and data conversions to be performed.