Dynamic GPU Context Segmentation for Concurrent Multi-Application Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) are underutilized due to their inability to handle multiple applications simultaneously, as they must clear context data from one application before processing another, even if spare capacity is available, leading to inefficiencies in workload execution.

Innovation Solution

Implementing a dynamic workload mapping and distribution scheme that allows multiple contexts from different applications to be executed concurrently on a shared GPU resource, using a workload mapping table to allocate compute assets efficiently and manage transitions between active and inactive contexts without software intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single application and context use the GPU at a time with time-sliced allocation, then context switching and data clearing are simplified, but the GPU becomes underutilized when spare capacity is available and multiple applications need processing

Engineering Contradiction:
ImproveGPU utilizationVSAvoidcontext management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the GPU context management into multiple independent context slots (first context, second context, third context, etc.) that can be independently allocated and managed. Each context slot maintains its own state and data, allowing the GPU to switch between multiple contexts without complete data clearing, thereby improving utilization while maintaining manageable complexity through structured segmentation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested structure where multiple application contexts are nested within the GPU's processing framework. The GPU can host multiple nested context layers simultaneously, with each context containing its own execution state and data. This nesting allows efficient resource sharing and reduces the need for complete context clearing, addressing the utilization-complexity contradiction

Inventive Principle:
Principle #7Nested doll (Nesting)

2Quantity of substance

If the GPU clears context data from one application before processing another, then memory is freed for the next application, but processing time is lost even when spare capacity exists

Engineering Contradiction:
Improvememory availabilityVSAvoidcontext switching time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-allocating multiple context slots and their associated memory spaces before applications need them. Context data is prepared and staged in advance within designated slots, allowing the GPU to switch between contexts without performing time-consuming clearing operations. The memory is already allocated and ready, eliminating both clearing time and allocation delays

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous useful action by maintaining multiple active context slots simultaneously rather than clearing and re-allocating memory sequentially. The GPU can switch between pre-loaded contexts without interruption to the useful work being performed, as each context retains its data and state. This continuity eliminates the time loss associated with context clearing while maintaining memory availability through persistent allocation

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If multiple contexts from different applications execute concurrently on a shared GPU, then GPU utilization improves, but software synchronization and coordination become more complex

Engineering Contradiction:
Improveworkload processing efficiencyVSAvoidsoftware intervention requirement
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service mechanisms where the GPU automatically manages context switching, memory allocation, and resource coordination between multiple concurrent applications without requiring software intervention. The context management system autonomously handles synchronization, allocation, and state maintenance, freeing applications from complex coordination requirements while maintaining efficient multi-context execution

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary context management layer between the GPU hardware and the applications. This intermediary automatically handles the complex synchronization and coordination tasks, translating high-level application requests into low-level GPU operations. The intermediary shields applications from complexity while enabling efficient concurrent execution through automated resource management

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If a workload mapping table is used to allocate compute assets dynamically, then resource allocation efficiency improves, but the system complexity increases

Engineering Contradiction:
Improvecompute asset allocation efficiencyVSAvoidworkload mapping system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses parameter changes by dynamically adjusting workload mapping table entries based on real-time GPU state and application requirements. The system monitors utilization metrics and automatically modifies allocation parameters, context slot assignments, and resource distribution without fundamental system redesign. These parameter adjustments improve allocation efficiency while maintaining the existing system architecture, minimizing complexity increases

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230359499A1Dynamic load balancing of compute assets among different compute contexts
Publication Date: 2023.11.09 INTEL CORP
  • US20230359499A1 patent drawing
  • US20230359499A1 patent drawing
  • US20230359499A1 patent drawing

AI summary

Examples are described here that can be used to allocate commands from multiple sources to performance by one or more segments of a processing device. For example, a processing device can be segmented into multiple portions and each portion is allocated to process commands from a particular source. In the event a single source provides commands, the entire processing device (all segments) can be allocated to process commands from the single source. When a second source provides commands, some segments can be allocated to perform commands from the first source and other segments can be allocated to perform commands from the second source. Accordingly, commands from multiple applications can be executed by a processing unit at the same time.