Heterogeneous Computing Autotuning for Runtime Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing heterogeneous computing systems face challenges in efficiently optimizing task distribution across different processors during runtime, leading to increased run-times due to the need for manual tuning, which is time-consuming and inefficient.
Innovation Solution
A method for online autotuning that configures program parameters during runtime by generating and adjusting tuning parameters, using a hybrid approach combining search, memorization, and model-based prediction to optimize performance metrics, while reducing the number of configurations tried and leveraging application-specific constraints and feedback to improve amortization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If manual tuning is performed to optimize task distribution across processors, then performance optimization is achieved, but time consumption increases significantly
Solution Approach 1:
The system implements self-service through automatic tuning mechanisms that autonomously optimize task distribution without requiring manual intervention. The tuning system automatically analyzes system state, evaluates different configurations, and applies optimizations based on performance metrics, enabling the system to self-optimize while minimizing human time investment.
Solution Approach 2:
The invention applies parameter changes by dynamically adjusting tuning parameters such as task granularity, parallelization degree, and processor allocation based on real-time system state. These parameter adjustments allow the system to adapt to changing conditions and achieve optimal performance automatically without manual reconfiguration.
2Adaptability or versatility
If online tuning is implemented to adjust parameters during runtime, then adaptability improves, but system complexity increases
Solution Approach 1:
The system implements feedback mechanisms that continuously monitor performance metrics and system state during runtime. This feedback is used to automatically adjust tuning parameters and task distribution strategies, enabling the system to adapt to changing conditions while managing complexity through closed-loop control rather than complex open-loop configurations.
Solution Approach 2:
The invention applies dynamics by making the tuning system flexible and adaptable during runtime. Rather than static configurations, the system dynamically adjusts task distribution, processor allocation, and parallelization strategies based on real-time conditions, achieving adaptability through controlled dynamic behavior rather than complex static structures.
3Productivity
If multiple computing applications are executed on heterogeneous processors, then computational efficiency improves, but task distribution optimization becomes more difficult
Solution Approach 1:
The system applies segmentation by dividing the complex task distribution problem into manageable components. It segments applications into computational tasks, further divides tasks into subtasks suitable for different processor types, and allocates them systematically. This hierarchical segmentation simplifies the optimization of task distribution across heterogeneous processors while maintaining high computational efficiency.
Solution Approach 2:
The invention applies universality by creating a unified tuning framework that can handle multiple computing applications and heterogeneous processor types through a single system. This multi-functional approach allows the same optimization mechanisms to work across different application types and processor architectures, reducing overall complexity compared to separate optimization systems for each scenario.
Data Source
AI summary
The present invention provides a method of configuring program parameters during run-time of a computing program for computation in a heterogeneous computing system. A compile program is processed in an autotuning system to optimize the parameters of an application for processing in a heterogeneous system comprising, for example CPU and GPU cores.


