Compute Platform Layer for Heterogeneous CPU GPU Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems struggle to leverage both CPUs and GPUs effectively for data parallel computations, as applications are typically designed for specific vendors and cannot utilize available processing resources across different vendors or types of processors.

Innovation Solution

A method and apparatus that configure and allocate processing resources dynamically, allowing applications to select and utilize either CPUs or GPUs based on capability requirements, enabling data parallel processing across multiple types of processors, including those from different vendors, by using a compute platform layer to manage resource allocation and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If applications are designed for specific GPUs using vendor specific interfaces, then data parallel computing performance is improved, but compatibility across different vendors and CPU-GPU interoperability deteriorates

Engineering Contradiction:
Improvedata parallel computing performanceVSAvoidcompatibility across different vendors and processor types
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal programming interface that allows applications to perform data parallel computations across multiple types of processors (CPUs and GPUs from different vendors) through a common API. The compute platform layer provides vendor-neutral abstractions that enable the same application code to execute on heterogeneous processing resources without requiring vendor-specific modifications.

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

Solution Approach 2:

The patent introduces a compute platform layer as an intermediary between applications and physical compute devices. This layer includes a runtime system and compiler that translate high-level compute shaders into vendor-specific instructions, enabling applications to interact with diverse hardware through a standardized interface while maintaining optimal performance on each platform.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If separate programming environments are used for GPUs and CPUs, then optimization for each processor type is improved, but ease of leveraging both processors deteriorates

Engineering Contradiction:
Improveprocessing optimizationVSAvoidease of leveraging both processors
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent creates a unified programming environment where a single compute shader program can target both CPU and GPU execution through the same interface. The compute platform layer automatically manages the compilation and execution of compute shaders on appropriate processors, eliminating the need for separate programming environments while maintaining optimization capabilities for each processor type.

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

3Productivity

If vendor specific programs are required for GPUs, then performance on specific hardware is improved, but adaptability to different processors deteriorates

Engineering Contradiction:
Improveperformance on specific hardwareVSAvoidadaptability to different processors
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a compute platform layer as an intermediary between applications and physical compute devices. This layer includes a runtime system and compiler that translate high-level compute shaders into vendor-specific instructions, enabling applications to interact with diverse hardware through a standardized interface while maintaining optimal performance on each platform.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses compute shader parameters and capabilities to dynamically adapt execution to different processor types. The system detects available hardware capabilities and adjusts compute shader parameters accordingly, allowing the same application to achieve optimized performance on CPUs, GPUs, or other processors without requiring separate programs for each platform.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2135163B1Data parallel computing on multiple processors
Publication Date: 2018.08.08 APPLE INC
  • EP2135163B1 patent drawingFigure 1
  • EP2135163B1 patent drawingFigure 2
  • EP2135163B1 patent drawingFigure 3

AI summary

A method and an apparatus that allocate one or more physical compute devices such as CPUs or GPUs attached to a host processing unit running an application for executing one or more threads of the application are described. The allocation may be based on data representing a processing capability requirement from the application for executing an executable in the one or more threads. A compute device identifier may be associated with the allocated physical compute devices to schedule and execute the executable in the one or more threads concurrently in one or more of the allocated physical compute devices concurrently.