Dynamic Instruction Graph Generation for Hardware Accelerators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for generating instructions for hardware accelerators are inefficient and do not effectively account for the specific capabilities of different hardware, leading to suboptimal execution of computational algorithms.

Innovation Solution

A computer-implemented method that uses directed graphs to generate instructions by replacing parts of the graph based on specific hardware capabilities, with pattern matching and data dependencies to determine the most suitable instructions for execution, allowing for the selection of the most effective graph for the hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single fixed instruction set is used for hardware accelerators, then the device complexity is reduced, but the adaptability to different computational algorithms and hardware capabilities deteriorates

Engineering Contradiction:
Improveadaptability to hardware capabilitiesVSAvoidinstruction generation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic instruction generation by transforming a static computational graph into multiple candidate instruction sequences based on hardware capabilities. The system dynamically selects and optimizes instruction sequences at runtime or compile time, allowing the same computational algorithm to be efficiently executed on different hardware accelerators with varying capabilities without requiring manual reconfiguration of the underlying computation graph.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the computational graph into independent operations and subgraphs that can be separately mapped to different hardware instructions. By dividing the computational task into discrete, mappable units, the system can selectively optimize different portions of the computation for specific hardware capabilities while maintaining overall adaptability across diverse accelerator architectures.

Inventive Principle:
Principle #1Segmentation

2Productivity

If manual optimization of instructions for each hardware accelerator is performed, then the execution efficiency is improved, but the ease of operation and time required deteriorates

Engineering Contradiction:
Improveexecution efficiencyVSAvoidinstruction generation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of hardware capabilities and computational graph characteristics before generating optimized instruction sequences. By pre-computing compatibility mappings between operations and hardware features, and pre-identifying optimization opportunities in the computational graph, the system reduces the time required for instruction generation while maintaining high execution efficiency on target hardware accelerators.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service optimization where the system automatically analyzes its own computational graphs and generates optimized instruction sequences without requiring manual intervention. The instruction generation system serves itself by using the computational graph structure and hardware capability descriptions to autonomously produce optimized code, eliminating the need for manual optimization efforts while maintaining high productivity.

Inventive Principle:
Principle #25Self-service

3Manufacturing precision

If generic instructions are used without considering hardware specifics, then the ease of operation is improved, but the execution efficiency and precision deteriorates

Engineering Contradiction:
Improvecomputational precisionVSAvoidinstruction generation ease
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The patent applies local quality optimization by matching specific operations in the computational graph to hardware-instructed capabilities that provide the best precision and performance for that particular operation. Instead of applying a uniform instruction set, the system selectively optimizes individual operations based on their specific computational requirements and the corresponding hardware accelerator capabilities, achieving high precision without requiring complex manual configuration.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If multiple candidate instruction sequences are generated and evaluated, then the adaptability to hardware is improved, but the device complexity and computational overhead increases

Engineering Contradiction:
Improvehardware capability matchingVSAvoidgraph transformation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements partial action by generating a limited set of candidate instruction sequences focused on the most promising optimization paths rather than exhaustively exploring all possible transformations. The system identifies and evaluates only the most relevant hardware-capability-matched instruction sequences, achieving effective adaptability without the excessive complexity of comprehensive graph transformation and evaluation.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20230244745A1Device and method to generate instructions for a computing device for executing a computational algorithm
Publication Date: 2023.08.03 ROBERT BOSCH GMBH
  • US20230244745A1 patent drawing
  • US20230244745A1 patent drawing
  • US20230244745A1 patent drawing

AI summary

A computer-implemented method to generate instructions for a computing device. A first graph having nodes and edges is provided, which defines first instructions for the computing device. At least one first part is sought in the first graph. A second part is determined as a function of the at least one first part. A directed, acyclic, linked second graph having nodes and edges is determined as a function of the first graph. In the second graph, the first part is replaced by the second part. The second graph defines second instructions for the computing device for executing the computational algorithm. A pattern for at least a part of a graph is provided, whose nodes and edges are defined by instructions that are executable by the computing device. The first graph or the second graph is selected as a function of the pattern, to generate instructions for the computing device.