Execution Graph Node Control API for GPU Time and Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Performing computational operations on processing resources such as GPUs is inefficient in terms of memory and time usage due to the lack of effective control over the execution of execution graphs.
Innovation Solution
Implementing an application programming interface (API) to control and indicate the execution of nodes within an execution graph, allowing for dynamic management of graph code portions on GPUs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If execution graphs are used to configure GPU for parallel computational operations, then productivity is improved, but memory and time usage becomes inefficient due to lack of control
Solution Approach 1:
The patent implements dynamic control of execution graph nodes through an API that allows runtime enabling and disabling of individual nodes. This dynamic adjustment capability enables the system to adapt execution patterns based on current computational needs, optimizing both productivity and time efficiency by executing only necessary graph portions.
Solution Approach 2:
The execution graph is divided into independent controllable nodes that can be individually managed through the API. Each node represents a discrete computational unit that can be enabled or disabled separately, allowing selective execution of graph portions. This segmentation enables fine-grained control over resource usage and execution time.
2Productivity
If execution graphs are used to configure GPU for parallel computational operations, then productivity is improved, but memory usage becomes inefficient due to lack of control
Solution Approach 1:
The API enables dynamic control over which execution graph nodes are active at any given time. By selectively enabling only the necessary nodes for current computational tasks, the system optimizes memory utilization while maintaining high productivity. Unused nodes can be disabled to free up memory resources.
Solution Approach 2:
By segmenting the execution graph into individually controllable nodes, the system can allocate memory resources more efficiently. Each node can be enabled or disabled independently, allowing the GPU to allocate memory only for the currently active computational units rather than pre-allocating for the entire graph.
3Device complexity
If static execution graphs are used, then device complexity is reduced, but adaptability is worsened due to inability to dynamically control node execution
Solution Approach 1:
The execution graph structure serves multiple functions: it maintains a static organizational framework for simplicity while enabling dynamic control through the API. The same graph structure can be used for both static configuration and runtime adaptation, making the system versatile without increasing inherent structural complexity.
Solution Approach 2:
The API acts as an intermediary layer between the static execution graph structure and the dynamic control requirements. This intermediary enables adaptability by providing control interfaces without modifying the underlying graph structure, thus maintaining simplicity while adding versatility.
Data Source
AI summary
Apparatuses, systems, and techniques to facilitate execution graph control. In at least one embodiment, an application programming interface comprising one or more parameters is used to control which of one or more portions of graph code are to be performed.


