Multi-GPU Kernel Dependency Scheduling for Local Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently utilizing multiple GPUs for image processing due to unbalanced workloads, idle time, and bottlenecks caused by data copying and synchronization, especially when GPUs are connected via different bus speeds and memory configurations.

Innovation Solution

A method is introduced where kernels are divided into portions assigned to specific GPUs, with dependency data generated and checked before executing subsequent portions, allowing for delayed execution until dependencies are met, thereby optimizing workload distribution and reducing idle time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple GPUs are used to process data in parallel, then processing throughput should increase, but workload distribution becomes unbalanced causing idle time and synchronization bottlenecks

Engineering Contradiction:
Improveprocessing throughputVSAvoididle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the data processing workload into distinct portions that can be independently assigned to different GPUs. Each GPU executes specific portions of the processing pipeline, allowing fine-grained control over workload distribution and eliminating idle time by ensuring continuous productive work on each device.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary dependency tracking before GPU execution begins. By pre-determining which portions must be executed on which GPUs and establishing dependency relationships in advance, the system eliminates synchronization bottlenecks and ensures optimal workload distribution from the start of processing.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If data copying is performed between GPUs for synchronization, then data consistency is maintained, but copying time and bandwidth consumption increase

Engineering Contradiction:
Improvedata consistencyVSAvoidsynchronization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments data into portions that are processed independently on different GPUs. By dividing the data rather than copying it, the system maintains data consistency through dependency tracking while eliminating the time-consuming copying process entirely. Each GPU works on its assigned data portions without requiring synchronization copies.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If GPUs with different bus speeds are used, then system flexibility increases, but performance disparity and bottleneck effects worsen

Engineering Contradiction:
Improvesystem flexibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements dynamic workload assignment where portions of data can be dynamically assigned to any available GPU regardless of its bus speed. The system adapts to heterogeneous hardware configurations by assigning work based on availability and capability rather than assuming uniform performance, thereby maintaining flexibility while optimizing processing efficiency through dynamic scheduling.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250363585A1Accessing local memory of a GPU executing a first kernel when executing a second kernel of another GPU
Publication Date: 2025.11.27 SONY INTERACTIVE ENTERTAINMENT LLC
  • US20250363585A1 patent drawing
  • US20250363585A1 patent drawing
  • US20250363585A1 patent drawing

AI summary

Methods for graphics processing are provided. One example method includes executing a plurality of kernels using a plurality of graphics processing units (GPUs), wherein responsibility for executing a corresponding kernel is divided into one or more portions each of which being assigned to a corresponding GPU. The method includes generating a plurality of dependency data at a first kernel as each of a first plurality of portions of the first kernel completes processing. The method includes checking dependency data from one or more portions of the first kernel prior to execution of a portion of a second kernel. The method includes delaying execution of the portion of the second kernel as long as the corresponding dependency data of the first kernel has not been met.