Cross-GPU Scheduling With a Dependency Table for Dependent Commands

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional GPU schedulers are unable to check dependencies across multiple GPUs, such as in rack-mounted systems, leading to inefficiencies in workload distribution and execution.

Innovation Solution

Implementing a primary GPU that maintains a dependency table to track and resolve cross-GPU dependencies, using doorbells to signal dependency resolution and schedule dependent commands for execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional GPU schedulers are used, then each GPU can execute commands independently, but dependencies across multiple GPUs cannot be checked leading to inefficiencies in workload distribution and execution

Engineering Contradiction:
Improveworkload distribution efficiencyVSAvoidscheduler capability
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the scheduling functions across multiple GPUs by implementing a primary GPU that maintains a centralized dependency table. This table tracks dependencies of commands assigned to different GPUs, allowing the system to check and resolve cross-GPU dependencies that conventional independent schedulers cannot detect, thereby improving workload distribution efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The dependency table acts as an intermediary data structure that mediates between multiple GPU schedulers. The primary GPU uses this table to monitor and resolve dependencies across GPUs, enabling coordinated execution without requiring complex inter-GPU communication protocols or increasing individual GPU scheduler complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a primary GPU maintains a dependency table to track cross-GPU dependencies, then dependent processes can be scheduled efficiently across multiple GPUs, but the system requires additional data structures and coordination mechanisms

Engineering Contradiction:
Improvecross-GPU execution efficiencyVSAvoidsystem structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the scheduling functionality by designating one GPU as primary while others remain secondary. The primary GPU maintains the dependency table and handles dependency resolution, while secondary GPUs focus on command execution. This segmentation allows efficient cross-GPU scheduling without requiring all GPUs to have full scheduling capabilities, thus managing system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The primary GPU performs multiple functions: it acts as a regular GPU for command execution while simultaneously maintaining the dependency table and resolving cross-GPU dependencies. This multi-functionality reduces the need for separate dedicated scheduling hardware or software components, implementing efficient cross-GPU coordination within existing GPU architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12354183B2Cross GPU scheduling of dependent processes
Publication Date: 2025.07.08 ADVANCED MICRO DEVICES INC
  • US12354183B2 patent drawing
  • US12354183B2 patent drawing
  • US12354183B2 patent drawing

AI summary

A primary processing unit includes queues configured to store commands prior to execution in corresponding pipelines. The primary processing unit also includes a first table configured to store entries indicating dependencies between commands that are to be executed on different ones of a plurality of processing units that include the primary processing unit and one or more secondary processing units. The primary processing unit also includes a scheduler configured to release commands in response to resolution of the dependencies. In some cases, a first one of the secondary processing units schedules the first command for execution in response to resolution of a dependency on a second command executing in a second one of the secondary processing units. The second one of the secondary processing units notifies the primary processing unit in response to completing execution of the second command.