Interposer for Dynamic API Call Mapping in Heterogeneous Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveease of use for programmersVSAvoidefficiency of accelerator utilization
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveefficiency of accelerator utilizationVSAvoidease of use for programmers
Core Design Contradiction:
ProductivityVSEase of operation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvesimplicity of mapping approachVSAvoidability to optimize for different platforms
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9703573B1Interposer for dynamic mapping of API calls
Publication Date: 2017.07.11 AIRBNB INC
  • US9703573B1 patent drawing
  • US9703573B1 patent drawing
  • US9703573B1 patent drawing

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.