Heterogeneous Processor Kernel Allocation via Profile Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing heterogeneous computing systems face challenges in optimally allocating compute kernels between CPUs and GPUs due to the large variation in processor performance characteristics and runtime resource availability, leading to sub-optimal performance and power consumption.

Innovation Solution

The system uses profiles to characterize kernels and processors, comparing them to determine the optimal allocation of kernels to processors, allowing for dynamic re-allocation based on workload and resource variations, thereby optimizing performance and energy consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If programmers manually allocate compute kernels to CPUs or GPUs, then they can control execution placement, but the system complexity increases and performance optimization becomes difficult due to varying processor characteristics

Engineering Contradiction:
Improvecompute kernel execution efficiencyVSAvoidkernel allocation scheme complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system automatically profiles processor performance characteristics and dynamically allocates compute kernels to optimal processors without programmer intervention. The runtime system self-adjusts kernel placement based on measured processor metrics, eliminating the need for complex manual allocation schemes while maximizing execution efficiency

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically changes allocation parameters based on real-time processor performance metrics. By monitoring and adapting to varying processor characteristics and workload conditions, the system optimizes kernel placement decisions without requiring fixed complex allocation rules

Inventive Principle:
Principle #35Parameter changes

2Power

If GPUs are used as accelerators for data-parallel code, then processing capability increases, but power consumption increases proportionally

Engineering Contradiction:
Improveprocessing capabilityVSAvoidpower consumption
Core Design Contradiction:
PowerVSUse of energy by moving object

Solution Approach 1:

The system dynamically selects between CPU and GPU execution based on real-time workload characteristics and processor utilization. By adapting kernel placement decisions to current system conditions, the system maximizes processing capability while minimizing unnecessary GPU power consumption for workloads better suited to CPU execution

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes execution parameters by selecting different processors based on measured performance and power characteristics. This dynamic parameter adjustment allows the system to optimize the power-performance tradeoff by matching workload requirements with appropriate processor capabilities

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If compute kernels are allocated based on static processor characteristics, then allocation is simple, but performance is sub-optimal due to runtime resource variations

Engineering Contradiction:
Improveallocation simplicityVSAvoidexecution performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system performs preliminary profiling of processor characteristics and maintains performance metrics for future reference. By pre-characterizing processor capabilities and storing historical performance data, the system prepares optimization information in advance without adding runtime complexity, enabling both simple operation and high performance

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If heterogeneous processors are used to handle different workloads, then processing versatility increases, but determining optimal kernel placement becomes non-trivial

Engineering Contradiction:
Improveprocessor utilization flexibilityVSAvoidoptimal allocation determination difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system implements feedback mechanisms by continuously monitoring processor performance metrics and using this information to guide future kernel allocation decisions. The runtime system measures actual execution performance and adjusts placement strategies accordingly, making the complex task of optimal allocation on heterogeneous processors manageable through data-driven decisions

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8707314B2Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
Publication Date: 2014.04.22 ADVANCED MICRO DEVICES INC
  • US8707314B2 patent drawing
  • US8707314B2 patent drawing
  • US8707314B2 patent drawing

AI summary

A system and method embodiments for optimally allocating compute kernels to different types of processors, such as CPUs and GPUs, in a heterogeneous computer system are disclosed. These include comparing a kernel profile of a compute kernel to respective processor profiles of a plurality of processors in a heterogeneous computer system, selecting at least one processor from the plurality of processors based upon the comparing, and scheduling the compute kernel for execution in the selected at least one processor.