DSL Compiler Proxy Tensor Cycle Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Neural network (NN) graphs often introduce cycles during compound operations, leading to complex challenges in traversal and detection, which can result in inefficient processing and potential infinite loops, especially if cycles are detected at runtime rather than during development.

Innovation Solution

A domain-specific language (DSL) compiler employs a proxy tensor class that introduces a level of indirection to detect and prevent cycles by creating a new instance of the TensorImplementation class for the proxy tensor, allowing the DSL compiler to transform compound operations into acyclic forms during the compilation process, thereby avoiding cycles in the computation graph.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If compound operations are used in neural network graphs, then the expressiveness and functionality of the neural network model is improved, but cycles are introduced into the computation graph which complicates traversal and detection

Engineering Contradiction:
Improveneural network model expressivenessVSAvoidcomputation graph complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by detecting and preventing cycles during the compilation phase before runtime execution. The cycle detection algorithm analyzes the computation graph structure in advance, identifying compound operations that would create cycles and transforming them into equivalent acyclic forms before the neural network is deployed, thus avoiding runtime complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary compilation step between model definition and execution. This intermediary phase includes a cycle detection and transformation pass that acts as a mediator, analyzing the computation graph and rewriting compound operations into acyclic equivalents, thereby decoupling the expressive power of compound operations from the complexity they introduce at runtime.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If cycles are detected at runtime rather than during development, then flexibility in model definition is improved, but processing efficiency deteriorates due to computationally costly detection algorithms

Engineering Contradiction:
Improvemodel definition flexibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent shifts cycle detection from runtime to compile time through preliminary action. The compilation process includes a dedicated cycle detection and transformation pass that analyzes the computation graph structure in advance, identifying and resolving cycles before the neural network model is executed. This eliminates the need for computationally costly runtime detection algorithms while maintaining model definition flexibility.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If compound operations are transformed into acyclic forms during compilation, then cycle prevention is improved, but compilation complexity increases

Engineering Contradiction:
Improvecycle preventionVSAvoidcompilation process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary compilation pass that serves as a specialized mediator between standard compilation and execution. This intermediary phase implements graph analysis and transformation algorithms specifically targeted at detecting and eliminating cycles in computation graphs. By isolating this complexity to a dedicated compilation step, the rest of the compilation process and runtime execution remain simple and efficient.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent employs copying by creating transformed copies of computation graphs during the compilation process. The cycle detection and transformation pass generates acyclic versions of the computation graph by duplicating and reorganizing operations, replacing compound operations with equivalent sequences that eliminate cycles. This copying approach allows the original model definition to remain unchanged while producing a safe acyclic execution version.

Inventive Principle:
Principle #26Copying

4Difficulty of detecting and measuring

If proxy tensor class with indirection is used, then cycle detection capability is improved, but memory overhead increases

Engineering Contradiction:
Improvecycle detection capabilityVSAvoidmemory overhead
Core Design Contradiction:
Difficulty of detecting and measuringVSQuantity of substance

Solution Approach 1:

The patent uses proxy tensor classes as intermediaries that introduce controlled indirection into the computation graph. These proxy objects act as mediators between tensor operations, enabling the cycle detection algorithm to track data dependencies and identify cyclic references. The proxy maintains minimal additional state information necessary for cycle detection while preserving the functional behavior of the original tensor operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11379712B2Avoiding cycles in neural networks
Publication Date: 2022.07.05 HEWLETT PACKARD ENTERPRISE DEV LP
  • US11379712B2 patent drawing
  • US11379712B2 patent drawing
  • US11379712B2 patent drawing

AI summary

Disclosed is a method, system, and computer readable medium to manage (and possibly replace) cycles in graphs for a computer device. The method includes detecting a compound operation including a first tensor, the compound operation resulting from source code represented in a first graph structure as part of a compilation process from source code to binary executable code. To address a detected cycle, an instance of a proxy class may be created to store a pointer to a proxy instance of the first tensor based on the detection. In some examples, using the instance of the proxy class facilitates implementation of a level of indirection to replace a cyclical portion of the graph structure with an acyclical portion such that the second graph structure indicates assignment of a result of the compound operation to the proxy instance of the first tensor. Optimization may reduce a total number of indirection replacements.