Indirection Layer for Dynamic Hardware Acceleration Dispatch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of managing and provisioning resources in large-scale distributed systems, particularly in data centers, is increased by the need for efficient hardware acceleration, which is often hindered by the high barrier of programming specialized hardware like FPGAs and ASICs for software developers.

Innovation Solution

A dynamic and selective hardware acceleration method using an indirection layer that allows applications to link to it instead of domain-specific libraries, enabling the use of hardware accelerators like FPGAs or ASICs without requiring developers to program them directly, by making runtime decisions on whether to dispatch calls to accelerators or CPUs based on task characteristics and estimated completion times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers directly program specialized hardware like FPGAs and ASICs for hardware acceleration, then processing speed and computational efficiency are improved, but the complexity of development and programming barrier increase significantly

Engineering Contradiction:
Improveprocessing speedVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an indirection layer that acts as an intermediary between the application and the hardware accelerator. This layer handles the complexity of hardware programming internally while presenting a simplified interface to developers. The indirection layer translates high-level computational requests into hardware-specific operations, allowing developers to achieve hardware acceleration without directly programming the specialized hardware, thus resolving the contradiction between processing speed improvement and programming complexity increase

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware accelerators are used for all computational tasks, then processing throughput is improved, but the flexibility and adaptability of the system decrease due to specialized hardware limitations

Engineering Contradiction:
ImprovethroughputVSAvoidsystem flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic system that can switch between CPU and hardware accelerator execution based on runtime conditions. The indirection layer monitors task characteristics, resource availability, and performance metrics to dynamically decide whether to dispatch tasks to the hardware accelerator or execute them on the CPU. This dynamic adaptability allows the system to maximize throughput when the accelerator is available and suitable, while maintaining flexibility to handle diverse computational tasks through the CPU, thus resolving the contradiction between throughput improvement and system flexibility

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If an indirection layer is introduced between applications and hardware accelerators, then ease of use and development are improved, but system overhead and complexity increase

Engineering Contradiction:
Improveease of useVSAvoidsystem overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The indirection layer is designed to provide multiple functions within a single component: it manages hardware accelerator dispatch, handles task scheduling, monitors performance metrics, and provides a unified interface for both CPU and accelerator operations. By consolidating these diverse functions into one universal layer, the patent reduces the need for multiple separate management systems, thereby improving ease of use while minimizing the increase in system overhead

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If runtime decisions are made to dispatch calls to accelerators or CPUs, then optimization of throughput and latency is improved, but the computational overhead for decision-making increases

Engineering Contradiction:
Improvethroughput optimizationVSAvoiddecision-making time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary profiling and characterization of computational tasks to pre-determine their suitability for hardware acceleration. During system initialization or previous executions, the indirection layer builds knowledge about which types of tasks benefit most from the hardware accelerator. This preliminary action allows the runtime decision-making process to rely on pre-computed information rather than performing complex real-time analysis, thus optimizing throughput while minimizing the time lost to decision-making

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10719366B1Dynamic and selective hardware acceleration
Publication Date: 2020.07.21 AMAZON TECH INC
  • US10719366B1 patent drawing
  • US10719366B1 patent drawing
  • US10719366B1 patent drawing

AI summary

Methods, systems, and computer-readable media for dynamic and selective hardware acceleration are disclosed. An indirection layer receives a plurality of computation calls generated by an application. The application and the indirection layer are executed by at least one processor of a computing device, and the application links to the indirection layer. The indirection layer determines whether to execute individual computation calls using the at least one processor or using the hardware accelerator. The indirection layer sends one or more of the computation calls and associated data to the hardware accelerator. The one or more of the computation calls are executed using the hardware accelerator, and one or more results are returned from the hardware accelerator to the indirection layer.