Offload Advisor for Heterogeneous Computing Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Loss of time
If more code objects are offloaded to accelerators, then execution time may be reduced, but overhead costs increase
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
3Productivity
If programmers port programs to heterogeneous systems, then performance can be improved, but the difficulty of detecting and measuring optimal offload candidates increases
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
Data Source
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.


