Unified GPU Programming Interface for Graphics and Compute Integration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming interfaces for graphics and data-parallel tasks on GPUs require separate APIs, leading to performance degradation and inconvenience in combining graphics and computing tasks.

Innovation Solution

A unified programming interface and language that allows developers to write efficient multithreaded programs for both graphics and data-parallel compute processing on GPUs, using the same data structures and resources, and integrating graphics and computation tasks without the need for multiple frameworks or specific execution order encoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate APIs are used for graphics and data-parallel tasks, then each task type can be programmed with dedicated interfaces, but performance degrades and combining tasks becomes inconvenient

Engineering Contradiction:
ImproveTask type coverageVSAvoidProcessing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges graphics and compute APIs into a single unified API that can handle both graphics data-parallel tasks and non-graphics data-parallel tasks. This consolidation eliminates the need for separate API contexts and allows seamless integration of different task types, thereby improving processing performance while maintaining versatility across task domains.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified API is designed to be universal, supporting multiple task types including graphics rendering and general-purpose computing through the same interface. This multi-functionality allows developers to use a single API for diverse workloads, eliminating performance penalties associated with context switching between separate APIs while preserving adaptability to different computational requirements.

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

2Adaptability or versatility

If separate APIs are used for graphics and data-parallel tasks, then each task type has specialized interfaces, but combining tasks becomes less convenient

Engineering Contradiction:
ImproveTask type coverageVSAvoidTask integration convenience
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

By merging graphics and compute functionalities into a single unified API, the patent enables convenient combination of different task types within the same programming context. Developers can issue graphics and compute commands through the same interface without needing to switch between separate API contexts, significantly improving ease of operation for integrated workloads.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified API provides universal access to both graphics and compute operations, allowing developers to work with a single set of interfaces regardless of task type. This universality simplifies task integration by eliminating the complexity of managing multiple specialized APIs, while still providing the adaptability needed for diverse computational tasks.

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

3Adaptability or versatility

If different APIs are used for graphics and computing tasks, then each task type can be optimized independently, but the system requires multiple frameworks

Engineering Contradiction:
ImproveTask optimization capabilityVSAvoidNumber of frameworks
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines multiple separate API frameworks into a single unified framework that handles both graphics and compute operations. This consolidation reduces device complexity by eliminating the need for multiple framework implementations while maintaining the ability to optimize different task types through a common, streamlined interface.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified API framework provides universal support for both graphics and computing tasks, eliminating the need for multiple specialized frameworks. This single framework approach reduces system complexity while preserving the optimization capabilities needed for different task types through a unified code path and consistent interface design.

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

Data Source

PatentEP3138006B1System and method for unified application programming interface and model
Publication Date: 2021.10.06 APPLE INC
  • EP3138006B1 patent drawingFigure 1
  • EP3138006B1 patent drawingFigure 2
  • EP3138006B1 patent drawingFigure 3

AI summary

Systems, computer readable media, and methods for a unified programming interface and language are disclosed. In one embodiment, the unified programming interface and language assists program developers write multi-threaded programs that can perform both graphics and data-parallel compute processing on GPUs. The same GPU programming language model can be used to describe both graphics shaders and compute kernels, and the same data structures and resources may be used for both graphics and compute operations. Developers can use multithreading efficiently to create and submit command buffers in parallel.