Hardware-Aware Task Fusion for Program Performance Tuning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing programming techniques for task parallelism with data dependency struggle to efficiently speed up programs due to the need for manual rewriting to accommodate various hardware types, leading to increased implementation and maintenance costs.
Innovation Solution
A task tuning method that automatically analyzes programs, identifies task pairs for fusion based on dependency relationships, calculates theoretical peak computational performance, and fuses tasks to optimize performance for the executing hardware, reducing the need for manual hardware-specific programming.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If manual rewriting of programs is performed to accommodate various hardware types, then programming can be tailored for hardware characteristics, but implementation and maintenance costs increase
Solution Approach 1:
The system performs self-tuning by automatically analyzing the program and hardware characteristics to determine optimal task fusion configurations. The runtime environment autonomously identifies task pairs that can be fused, calculates performance metrics, and applies fusion transformations without requiring manual programming adjustments for each hardware type.
Solution Approach 2:
The invention dynamically changes program parameters by transforming task definitions into fused task definitions based on hardware characteristics. The system modifies task fusion configurations as a parameter to optimize performance for different hardware platforms without changing the core program logic.
2Productivity
If manual rewriting of programs is performed for different hardware types, then hardware-specific optimization is achieved, but maintenance costs increase
Solution Approach 1:
The system maintains itself by automatically adapting to different hardware types through self-analysis and self-configuration. The runtime environment continuously monitors hardware characteristics and autonomously adjusts task fusion strategies, eliminating the need for manual maintenance and updates for each hardware platform.
Solution Approach 2:
The invention creates a universal program that can run on multiple hardware types without requiring hardware-specific versions. The same program source code is transformed automatically to optimize for different hardware architectures, making the program universally applicable while maintaining hardware-specific performance optimization.
3Speed
If tasks are fused to optimize computational performance, then program execution speed improves, but task dependency management becomes more complex
Solution Approach 1:
The system employs feedback mechanisms by calculating theoretical peak computational performance metrics for different task fusion configurations and using this information to guide the fusion decisions. The runtime environment continuously monitors execution characteristics and adjusts fusion strategies based on actual performance feedback.
Solution Approach 2:
The invention performs preliminary analysis of task dependencies and performance metrics before executing task fusion. The system pre-calculates potential fusion configurations and their theoretical performance gains, then selects and applies the optimal fusion strategy during execution, avoiding complex real-time decision-making.
Data Source
AI summary
A recording medium stores a program for causing a computer to execute a process including: analyzing a program and detecting tasks; identifying pairs of tasks that are able to be fused into one task among the tasks that have been detected based on a dependency relationship between the tasks; for each of the pairs, calculating theoretical peak computational performance in a case where tasks of the pairs are fused based on a first value that represents a memory bandwidth per computational performance when tasks of the pairs are fused, a second value that represents a memory bandwidth per computational performance of hardware that executes the program, and computational performance of the hardware; determining a fusion target pair from the pairs that have been identified based on the theoretical peak computational performance that has been calculated; and fusing tasks of the fusion target pair that has been determined in the program.


