Graph Code Priority Modification for Parallel Execution Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Parallel computing systems face inefficiencies in memory and processor usage when executing graphs representing operations, as existing methods do not effectively optimize the scheduling of graph code portions, leading to suboptimal resource allocation and execution order.

Innovation Solution

A processor and graphics processor system that modifies the priority of graph code portions to be scheduled, using a computer-implemented method to generate and prioritize execution based on graph topology and dependencies, allowing for efficient scheduling and resource allocation by adjusting priority values within specific ranges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If graph operations are executed using existing scheduling methods, then the operations can be performed, but memory and processor usage are inefficient and resource allocation is suboptimal

Engineering Contradiction:
Improveexecution efficiencyVSAvoidmemory and processor usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary analysis of graph topology and dependencies before execution to determine optimal priority assignments. By pre-calculating the critical path and identifying bottleneck operations, the scheduler can assign priorities that optimize resource utilization before the graph execution begins, avoiding inefficient runtime adjustments and reducing overall memory and processor usage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scheduling system dynamically adjusts priorities of graph nodes based on real-time resource availability, current execution state, and predicted future workload. This dynamic priority adjustment allows the system to adapt to changing conditions, ensuring optimal memory and processor usage throughout the graph execution by shifting resources from less critical to more critical operations as needed.

Inventive Principle:
Principle #15Dynamics

2Productivity

If graph operations are executed using existing scheduling methods, then the operations can be performed, but resource allocation is suboptimal

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The scheduling system incorporates feedback mechanisms that continuously monitor resource allocation effectiveness and execution progress. Based on this feedback, the system iteratively refines priority assignments to improve resource allocation efficiency. The feedback loop identifies bottlenecks and suboptimal allocations, allowing the scheduler to adjust priorities in subsequent executions to reduce total execution time while improving resource utilization.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes scheduling parameters such as node priorities, thread allocations, and execution batches based on graph characteristics and resource conditions. By dynamically adjusting these parameters rather than using fixed scheduling rules, the system optimizes both resource allocation efficiency and execution time, adapting to different graph types and hardware configurations.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If priorities are modified for graph code portions, then execution order is optimized, but scheduling complexity increases

Engineering Contradiction:
Improveexecution order optimizationVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The scheduling system divides the graph into segments or batches based on dependency relationships and resource requirements. By processing segments independently with localized priority adjustments, the system achieves execution order optimization without requiring complex global scheduling. Each segment can be scheduled with simpler rules, reducing overall scheduling complexity while maintaining optimization benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary layer between graph definition and execution that handles priority modification. This intermediary translates high-level graph topology information into optimized priority assignments without requiring complex scheduling logic in the execution engine. The intermediary absorbs the complexity of priority calculation, allowing the core scheduling mechanism to remain relatively simple while still achieving optimized execution orders.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240168799A1Graph modification
Publication Date: 2024.05.23 NVIDIA CORP
  • US20240168799A1 patent drawing
  • US20240168799A1 patent drawing
  • US20240168799A1 patent drawing

AI summary

Apparatuses, systems, and techniques to modify graphs. In at least one embodiment, a processor comprises one or more circuits to modify an execution order of at least one graph portion.