Binary Tree Interval Nodes for Scalable Neural Network Interference Graphs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The generation of interference graphs for memory allocation in complex neural network models is time-consuming due to the use of triangular bitmap data structures with a time complexity of O(N^2), which does not scale well with the large number of tensors involved.
Innovation Solution
The generation of a binary tree of interval nodes to represent live intervals of memory objects, allowing for efficient determination of interferences through binary search with a time complexity of O(N) for generation and O(log N+k) for querying, reducing compilation time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If triangular bitmap data structures are used for interference graph generation, then the generation process is straightforward to implement, but the time complexity becomes O(N^2) which does not scale well with large number of tensors
Solution Approach 1:
The patent segments the interference graph generation process into two distinct phases: (1) constructing a binary tree representation of live intervals in O(N) time, and (2) querying the binary tree for interferences in O(log N + k) time. This segmentation allows each phase to be optimized independently, resolving the contradiction between implementation simplicity and compilation speed.
Solution Approach 2:
The patent transforms the traditional 2D triangular bitmap approach into a hierarchical binary tree structure, adding a dimensional aspect to the data representation. This dimensional change enables more efficient querying by organizing intervals in a tree hierarchy, achieving O(log N + k) query time instead of O(N^2) while maintaining reasonable implementation complexity.
2Ease of manufacture
If traditional O(N^2) algorithms are used for interference determination, then the implementation is simple, but the compilation time becomes excessively long for complex neural network models
Solution Approach 1:
The patent performs preliminary action by constructing the binary tree representation of all live intervals before the actual interference graph generation. This pre-processing step organizes the interval data in a hierarchical structure that enables efficient querying, reducing the subsequent interference determination from O(N^2) to O(N log N + k) overall complexity.
Solution Approach 2:
The binary tree structure serves as an intermediary data structure between the raw live interval information and the final interference graph. This intermediary representation enables efficient interference queries by providing a structured hierarchy that can be searched in logarithmic time, significantly reducing compilation time while maintaining implementation feasibility.
3Productivity
If a binary tree structure is used for interval representation, then the query time complexity improves to O(log N + k), but the data structure complexity increases compared to triangular bitmap
Solution Approach 1:
The binary tree structure serves multiple functions: it represents live intervals, enables efficient interference queries, and provides a framework for generating the interference graph. This multi-functionality justifies the increased data structure complexity by delivering substantial query efficiency improvements and resolving several problems with a single unified structure.
Solution Approach 2:
The patent changes the fundamental parameter of time complexity for interference queries from O(N^2) to O(log N + k) by adopting the binary tree structure. This parameter change in algorithmic efficiency outweighs the moderate increase in data structure complexity, particularly for large-scale neural network models where compilation time becomes the critical bottleneck.
Data Source
AI summary
Techniques for reducing interference graph generation time may include obtaining a data flow graph representing a computational flow. For each memory object in the data flow graph, a memory object live interval can be added to a vector of intervals. The memory object live interval indicates a last-use of the memory object and a first-definition of the memory object. The vector of intervals can be converted into a binary tree of interval nodes. For each interval node in the binary tree, an earliest-first-definition value is determined for the sub-tree rooted at the interval node, and is associated with the interval node. The binary tree can be queried for interferences of a memory object, and memory allocation can be performed for the computational flow based on the interferences.


