Heterogeneous Processor Kernel Allocation via Profile Matching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing heterogeneous computing systems face challenges in optimally allocating compute kernels between CPUs and GPUs due to the large variation in processor performance characteristics and runtime resource availability, leading to sub-optimal performance and power consumption.
Innovation Solution
The system uses profiles to characterize kernels and processors, comparing them to determine the optimal allocation of kernels to processors, allowing for dynamic re-allocation based on workload and resource variations, thereby optimizing performance and energy consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If programmers manually allocate compute kernels to CPUs or GPUs, then they can control execution placement, but the system complexity increases and performance optimization becomes difficult due to varying processor characteristics
Solution Approach 1:
The system automatically profiles processor performance characteristics and dynamically allocates compute kernels to optimal processors without programmer intervention. The runtime system self-adjusts kernel placement based on measured processor metrics, eliminating the need for complex manual allocation schemes while maximizing execution efficiency
Solution Approach 2:
The system dynamically changes allocation parameters based on real-time processor performance metrics. By monitoring and adapting to varying processor characteristics and workload conditions, the system optimizes kernel placement decisions without requiring fixed complex allocation rules
2Power
If GPUs are used as accelerators for data-parallel code, then processing capability increases, but power consumption increases proportionally
Solution Approach 1:
The system dynamically selects between CPU and GPU execution based on real-time workload characteristics and processor utilization. By adapting kernel placement decisions to current system conditions, the system maximizes processing capability while minimizing unnecessary GPU power consumption for workloads better suited to CPU execution
Solution Approach 2:
The system changes execution parameters by selecting different processors based on measured performance and power characteristics. This dynamic parameter adjustment allows the system to optimize the power-performance tradeoff by matching workload requirements with appropriate processor capabilities
3Ease of operation
If compute kernels are allocated based on static processor characteristics, then allocation is simple, but performance is sub-optimal due to runtime resource variations
Solution Approach 1:
The system performs preliminary profiling of processor characteristics and maintains performance metrics for future reference. By pre-characterizing processor capabilities and storing historical performance data, the system prepares optimization information in advance without adding runtime complexity, enabling both simple operation and high performance
4Adaptability or versatility
If heterogeneous processors are used to handle different workloads, then processing versatility increases, but determining optimal kernel placement becomes non-trivial
Solution Approach 1:
The system implements feedback mechanisms by continuously monitoring processor performance metrics and using this information to guide future kernel allocation decisions. The runtime system measures actual execution performance and adjusts placement strategies accordingly, making the complex task of optimal allocation on heterogeneous processors manageable through data-driven decisions
Data Source
AI summary
A system and method embodiments for optimally allocating compute kernels to different types of processors, such as CPUs and GPUs, in a heterogeneous computer system are disclosed. These include comparing a kernel profile of a compute kernel to respective processor profiles of a plurality of processors in a heterogeneous computer system, selecting at least one processor from the plurality of processors based upon the comparing, and scheduling the compute kernel for execution in the selected at least one processor.


