Tracing Engine Loop Escape Analysis for Mixed Differentiation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current sensitivity calculation methods, such as 'bump-and-run' and forward-calculating 'finite difference,' are inefficient and computationally intensive, especially when dealing with large numbers of inputs, leading to high memory usage and impractical computation times in applications like chemical engineering and financial modeling.

Innovation Solution

The implementation of loop escape analysis and data structure compression techniques, using tracing engines to dynamically select between forward and backward automatic differentiation methods based on input and output ratios, optimizing memory usage and computation speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If bump-and-run schemes or forward-calculating finite difference methods are used to calculate sensitivities, then sensitivity values can be obtained, but computation time and memory usage increase significantly

Engineering Contradiction:
Improvesensitivity calculation accuracyVSAvoidcomputation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the sensitivity calculation process into distinct phases: forward propagation for computing activations and backward propagation for computing gradients. This segmentation allows independent optimization of each phase and enables efficient memory management by clearing intermediate activations after backward propagation completes, thus reducing overall computation time while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-allocating memory buffers for gradients and activations before the main computation loop. This prevents dynamic memory allocation during computation, reducing overhead and improving computation speed. The buffers are reused across multiple forward-backward propagation cycles, further enhancing efficiency.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If bump-and-run schemes or forward-calculating finite difference methods are used to calculate sensitivities, then sensitivity values can be obtained, but memory usage increases significantly

Engineering Contradiction:
Improvesensitivity calculation accuracyVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent implements discarding and recovering by clearing intermediate activation values from memory immediately after they are used in the backward propagation phase. The memory buffers that stored these activations are then reused for new computations. This approach maintains the necessary information for accurate sensitivity calculation while recovering memory for subsequent use, significantly reducing peak memory usage.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The patent extracts only the essential information needed for sensitivity calculation—the gradients with respect to inputs—while discarding intermediate computational details after they serve their purpose. By extracting only the necessary sensitivity values and releasing auxiliary data structures, the system maintains calculation accuracy while minimizing memory consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If traditional sensitivity calculation methods are used, then all input variations can be processed, but the system lacks dynamic adaptability to select optimal calculation modes

Engineering Contradiction:
Improvecalculation method selection flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces dynamics by implementing a mode selection mechanism that adapts the calculation approach based on runtime conditions. The system can dynamically switch between different backward propagation modes (e.g., full precision, mixed precision, or gradient checkpointing) depending on available memory and computational resources. This dynamic adaptation enhances versatility without significantly increasing system complexity, as the decision logic is based on simple threshold comparisons of resource availability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11799495B2Tracing engine-based software loop escape analysis and mixed differentiation evaluation
Publication Date: 2023.10.24 FIDELITY INFORMATION SERVICES LLC
  • US11799495B2 patent drawing
  • US11799495B2 patent drawing
  • US11799495B2 patent drawing

AI summary

A method for loop escape analysis includes receiving a set of executable computer instructions stored on a storage medium, and determining a number of inputs to a loop associated with a data structure, storage space that would be saved by compressing the data structure, and a size of new elements required to compress the data structure. Upon reaching an end of the loop, the method determines whether to compress the data structure based on a comparison between the size of the new elements and the saved storage space. In response to determining to compress the data structure, the method compresses the data structure.