Job Management Layer for Multi-Processor Graphics Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current digital graphic design and video editing applications face inefficiencies due to the need for manual code translation and optimization across different GPUs and CPUs, requiring substantial effort to achieve concurrent rendering performance.

Innovation Solution

An operating system with an image processing framework and job management layer that assigns image processing operations to multiple concurrent computing resources, including CPUs and GPUs, using direct memory access channels for data transfer, allowing for efficient load-balancing and concurrent rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual code translation and optimization is performed for different GPUs and CPUs, then code compatibility across platforms is improved, but development time and effort increase substantially

Engineering Contradiction:
Improvecode compatibilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary layer (API abstraction layer) between the application code and the underlying rendering resources (GPUs/CPU). This intermediary handles the platform-specific code translation and optimization automatically, allowing developers to write platform-independent code while achieving cross-platform compatibility. The intermediary translates high-level rendering commands into platform-specific instructions without requiring manual optimization for each platform.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If concurrent rendering resources (GPUs and CPUs) are utilized, then rendering performance is improved, but system complexity increases due to resource management requirements

Engineering Contradiction:
Improverendering performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the rendering workload into independent rendering jobs that can be distributed across multiple concurrent resources (GPUs and CPUs). Each rendering resource operates independently on assigned jobs, eliminating the need for complex coordination and synchronization mechanisms. The segmentation of work into discrete, self-contained jobs simplifies resource management while maximizing parallel processing performance.

Inventive Principle:
Principle #1Segmentation

3Speed

If code is optimized for efficient performance on different platforms, then rendering speed is improved, but code complexity and maintenance effort increase

Engineering Contradiction:
Improverendering speedVSAvoidcode complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent creates a universal rendering API that can operate across multiple platforms (different GPUs and CPUs) without requiring platform-specific code optimization. The unified interface handles all platform variations, allowing the same codebase to achieve efficient performance on diverse hardware through the intermediary's platform-specific optimizations rather than through complex multi-version code management.

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

Data Source

PatentUS9697579B2Multi-processor graphics rendering
Publication Date: 2017.07.04 APPLE INC
  • US9697579B2 patent drawing
  • US9697579B2 patent drawing
  • US9697579B2 patent drawing

AI summary

An operating system that includes an image processing framework as well as a job management layer is provided. The image processing framework is for performing image processing operations and the job management layer is for assigning the image processing operations to multiple concurrent computing resources. The computing resources include several processing units and one or more direct memory access (DMA) channels for concurrently rendering image data and transferring image data between the processing units.