High-Level Graphics API for Multi-Processor Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems lack a high-level interface that efficiently manages graphics operations, particularly in image processing applications, leading to complexity and inefficiency in utilizing graphics hardware resources, and there is a need for a system that can operate on both multi-processor and single-processor systems.

Innovation Solution

A high-level program interface for graphics operations is introduced, allowing users to create graph-like descriptions of image tasks using nodes and links, which can be optimized by a compiler to minimize resources and efficiently divide work between the CPU and GPU, enabling the use of programmable GPUs and emulating on single processor systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a low-level graphics interface like OpenGL is used, then hardware accessibility is achieved, but programming complexity and state management burden increase

Engineering Contradiction:
Improvehardware accessibilityVSAvoidprogramming complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediate high-level API layer between the application and the low-level graphics hardware interface. This intermediary layer provides simplified image processing functions that automatically manage the complex state machine operations of OpenGL, reducing programming complexity while maintaining hardware accessibility. The high-level API acts as a mediator that translates simple image processing requests into complex GPU operations without exposing the underlying complexity to the user.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If programmable GPUs are used, then flexibility and graphics capability improve, but resource management complexity increases

Engineering Contradiction:
Improvegraphics flexibilityVSAvoidresource management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements automatic resource management where the system automatically handles GPU program compilation, memory allocation, and resource binding without requiring manual intervention. The high-level API includes built-in mechanisms that self-manage the complex resources of programmable GPUs, allowing developers to leverage GPU flexibility while the system handles the associated complexity automatically.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If CPU time is used for graphics rendering, then program simplicity is maintained, but application performance decreases

Engineering Contradiction:
Improveprogram simplicityVSAvoidapplication performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent creates a dynamic system that automatically selects between CPU and GPU execution based on the specific operation being performed. The high-level API includes intelligent routing that dynamically directs simple operations to the CPU and complex graphics-intensive operations to the GPU, optimizing performance while maintaining program simplicity. This dynamic allocation allows the system to adaptively use the most appropriate processing resource for each task.

Inventive Principle:
Principle #15Dynamics

4Ease of operation

If a high-level abstraction layer is introduced, then ease of use improves, but processing efficiency may decrease

Engineering Contradiction:
Improveease of useVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent performs preliminary actions by pre-compiling GPU programs and pre-allocating resources when the high-level API functions are first called, rather than doing so repeatedly during execution. The system caches compiled shader programs and manages resource allocation in advance, so that the simplified high-level interface does not incur repeated overhead costs. This preliminary preparation maintains ease of use while preserving processing efficiency during actual image operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8704837B2High-level program interface for graphics operations
Publication Date: 2014.04.22 APPLE INC
  • US8704837B2 patent drawing
  • US8704837B2 patent drawing
  • US8704837B2 patent drawing

AI summary

Disclosed is a system for producing images including an application program interface. The system includes an API and techniques for creating images by defining relationships between filters and images, such relationships programmatically assembled in an object by a cooperative session between a requesting application and a graphics services resource. The system also includes aspects regarding optimization of the programmatically assembled object and techniques for rendering in multi-processor environment.