Interposer for Dynamic API Call Mapping in Heterogeneous Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Application programmers lack familiarity with hardware architectures of accelerator devices, making it difficult to efficiently utilize accelerators in heterogeneous systems, as they typically rely on optimized software libraries rather than understanding the specific hardware capabilities.
Innovation Solution
A heterogeneous system with an interposer that intercepts library calls from an API and maps them to CPU, GPU, or FPGA processing platforms using an affinity table with call signatures and performance parameters, allowing dynamic mapping and transparent acceleration without modifying application code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If application programmers rely on optimized software libraries without understanding hardware architecture, then ease of operation is improved, but productivity deteriorates because accelerators cannot be efficiently utilized
Solution Approach 1:
The patent introduces an interposer as an intermediary layer between the API and the heterogeneous processing platforms. This interposer contains an affinity table that maps API calls to appropriate processing platforms (CPU, GPU, FPGA, etc.) based on performance parameters. The interposer automatically selects the optimal platform without requiring programmer intervention, thus maintaining ease of operation while improving productivity through efficient accelerator utilization.
2Productivity
If programmers are required to understand hardware architecture of accelerator devices, then productivity is improved through efficient use of accelerators, but ease of operation deteriorates
Solution Approach 1:
The interposer serves as a mediator that handles the complexity of hardware architecture selection. It contains pre-computed affinity tables that encode knowledge about which processing platforms are best suited for different types of computational tasks. The interposer automatically queries this table and routes API calls to the appropriate platform, allowing programmers to focus on application logic without needing to understand hardware architecture details.
Solution Approach 2:
The affinity table is pre-computed and populated with performance parameters for different API calls on various processing platforms. This preliminary action of characterizing and storing performance data allows the system to make optimal routing decisions at runtime without requiring real-time analysis or programmer expertise in hardware architecture.
3Device complexity
If a fixed mapping approach is used for API calls to processing platforms, then device complexity is reduced, but adaptability deteriorates because dynamic optimization is impossible
Solution Approach 1:
The patent implements a dynamic mapping approach where the interposer queries an affinity table at runtime to determine the optimal processing platform for each API call. The affinity table stores performance parameters for different platforms and call types, allowing the system to adaptively select the best platform based on the specific characteristics of each computational task. This dynamic approach maintains relative simplicity while achieving high adaptability.
Solution Approach 2:
The system performs preliminary characterization of different API calls and processing platforms, storing performance data in the affinity table in advance. This pre-computation of performance metrics allows the runtime system to make informed routing decisions without complex real-time analysis, balancing simplicity with adaptability.
Data Source
AI summary
Embodiments are directed to a heterogeneous system for dynamically mapping library calls to one of a plurality of processing platforms. The plurality of processing platforms include a central processing unit (CPU) and one or more acceleration units as co-processing units. The system includes an interposer configured to intercept the library calls from an application programming interface (API) and to map the library calls to one of the plurality of processing platforms according to a classification scheme based on an affinity table. The affinity table includes call signatures representing input parameters of sample library calls. Furthermore, the affinity table includes one or more performance parameters of the sample library calls for each of the processing platforms. The performance parameters indicate the performance of the sample library calls on the respective processing platform. Also included are a related method and a related computer program product.


