Heterogeneous Multicore Task Assignment via Runtime Execution Measurement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In heterogeneous multicore systems, accurately assigning tasks to cores with different instruction sets and clock rates is challenging due to the complexity of predicting execution times, leading to inaccuracies and inefficient machine code generation.

Innovation Solution

A method that determines execution times and efficiency factors for each core, allowing dynamic assignment of machine code based on actual performance and workload, enabling optimal core selection for tasks at runtime without prior estimation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static prediction models are used to estimate execution time during compilation, then task assignment can be performed, but large inaccuracies occur making it difficult to generate optimum machine code

Engineering Contradiction:
Improveexecution time estimation accuracyVSAvoidcomplexity of prediction model
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent transitions from static execution time prediction models to dynamic measurement. Instead of relying on complex predictive models during compilation, the system actually measures execution times during runtime on the target hardware. This dynamic approach eliminates the inaccuracy of static predictions while avoiding the complexity of developing and maintaining sophisticated prediction models for each device type.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback by measuring actual execution times of code segments on different cores and using this measured data to inform subsequent task assignments. The measured performance data feeds back into the assignment decision process, allowing the system to continuously improve its task distribution based on real hardware performance characteristics rather than theoretical models.

Inventive Principle:
Principle #23Feedback

2Productivity

If heterogeneous cores with different instruction sets are used, then computational efficiency for specific operations improves, but accurate task assignment becomes significantly more difficult

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidcomplexity of task assignment
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the approach from predicting execution time based on device parameters (instruction sets, clock rates, architecture) to directly measuring execution time as a parameter. By measuring actual performance rather than calculating it from device specifications, the system handles the complexity of heterogeneous cores uniformly, regardless of their different instruction sets and architectures.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The heterogeneous multicore system performs self-characterization by automatically measuring its own execution times on different cores. Instead of requiring external complex models or manual characterization of each core's capabilities, the system generates its own performance data through runtime measurements, enabling automatic optimal task assignment across diverse core types.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If execution time measurement is performed on all available cores, then optimal core selection is enabled, but processing overhead increases

Engineering Contradiction:
Improvecore performance measurement accuracyVSAvoidtime for execution time determination
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies partial action by measuring execution times on a representative subset of cores rather than exhaustively testing all possible core combinations. The system measures performance on one or more cores of each type and uses these measurements to infer performance characteristics, avoiding the excessive time cost of measuring every core individually while still achieving accurate task assignment.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs preliminary measurement of execution times during an initialization phase or during idle periods before actual task assignment begins. By conducting these measurements in advance, the performance data is available when needed for task assignment without adding overhead to the critical task execution path, thus minimizing time loss during operational phases.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11449364B2Processing in a multicore processor with different cores having different architectures
Publication Date: 2022.09.20 HUAWEI TECH CO LTD
  • US11449364B2 patent drawing
  • US11449364B2 patent drawing
  • US11449364B2 patent drawing

AI summary

A multicore processor is provided. In order to select one of the multiple cores in such a multicore processor, an execution time of tasks which are performed multiple times is determined. Based on the determined execution time on the individual cores, an appropriate core for further executions of a task is selected. Additionally, the present disclosure further provides a code generator and code generating method for providing appropriate machine code for the multicore processor.