Offload Advisor for Heterogeneous Computing Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software systems face challenges in effectively leveraging accelerators in heterogeneous computing systems to reduce program execution time, as it is difficult for programmers to identify and exploit potential offloadable code segments due to differences in execution models and overhead costs.

Innovation Solution

An offload advisor is introduced, which is an automated program analysis tool that recommends accelerator-enabled execution strategies and estimates performance improvements by transforming runtime metrics from host processor units to reflect heterogeneous architectures, using a constraint-based roofline model and dynamic-programming-like approaches to select code objects for offloading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If programmers manually identify and offload code segments to accelerators, then program performance can be improved, but the complexity and difficulty of system operation increases significantly

Engineering Contradiction:
Improveprogram performanceVSAvoidprogrammer effort
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs self-analysis to automatically identify candidate code objects for offloading. The offload advisor analyzes program characteristics, estimates execution times on both host and accelerator, and generates offload recommendations without requiring manual programmer intervention, thus resolving the contradiction between performance improvement and operational complexity

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system provides feedback to programmers through offload recommendations that include estimated performance improvements. This feedback mechanism allows programmers to make informed decisions about which code objects to offload, balancing automatic analysis with programmer control to achieve performance gains without excessive operational complexity

Inventive Principle:
Principle #23Feedback

2Loss of time

If more code objects are offloaded to accelerators, then execution time may be reduced, but overhead costs increase

Engineering Contradiction:
Improveexecution timeVSAvoidoverhead costs
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The system changes the parameter of offload decision-making from manual heuristic judgment to automated quantitative analysis. By estimating execution times and comparing them against overhead costs, the system dynamically determines the optimal set of code objects to offload, achieving time reduction while minimizing energy loss through data-driven parameter optimization

Inventive Principle:
Principle #35Parameter changes

3Productivity

If programmers port programs to heterogeneous systems, then performance can be improved, but the difficulty of detecting and measuring optimal offload candidates increases

Engineering Contradiction:
Improveprogram performanceVSAvoidoffload candidate identification
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The offload advisor acts as an intermediary between the programmer and the heterogeneous computing system. It automatically analyzes program characteristics, estimates execution times on different architectures, and identifies optimal offload candidates, thereby resolving the difficulty of detecting and measuring suitable code objects without requiring deep hardware knowledge from programmers

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20230367640A1Program execution strategies for heterogeneous computing systems
Publication Date: 2023.11.16 INTEL CORP
  • US20230367640A1 patent drawing
  • US20230367640A1 patent drawing
  • US20230367640A1 patent drawing

AI summary

An offload analyzer analyzes a program for porting to a heterogenous computing system by identifying code objects for offloading to an accelerator. Runtime metrics generated by executing the program on a host processor unit are provided to an accelerator model that models the performance of the accelerator and generates estimated accelerator metrics for the program. A code object offload selector selects code objects for offloading based on whether estimated accelerated times of the code objects, which comprise estimated accelerator times and offload overhead times, are better than their host processor unit execution times. The code object offload selector selects additional code objects for offloading using a dynamic-programming-like performance estimation approach that performs a bottom-up traversal of a call tree. A heterogeneous version of the program can be generated for execution on the heterogeneous computing system.