GPU Driver Concurrency API for Shared Processor Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern systems face inefficiencies in utilizing GPU resources due to context switches between different drivers, leading to resource wastage and suboptimal performance as one driver may not fully utilize available resources until a context switch occurs, limiting concurrent processing capabilities.

Innovation Solution

Implementing an application programming interface (API) that enables concurrent control of GPU resources by multiple drivers through shared contexts, allowing graphics and computation tasks to share resources efficiently, thereby optimizing resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If context switches are used to allow different drivers to use the same processor, then driver flexibility and resource sharing are enabled, but considerable resources are consumed and processing time is lost during context switching

Engineering Contradiction:
Improvedriver flexibilityVSAvoidcontext switch time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-loading computation contexts and pre-establishing resource allocation before actual processing begins. This allows the GPU to quickly switch between contexts without full context switching overhead, reducing the time loss associated with driver flexibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the GPU context into separate graphics context and computation context that can be independently managed and shared. This segmentation allows partial context reuse and reduces the amount of data that needs to be transferred during context switches, thereby reducing context switch time while maintaining driver flexibility.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If one driver uses GPU resources exclusively, then resource allocation is simple, but resource utilization efficiency decreases when multiple drivers need access

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent implements a universal GPU resource management system where a single GPU can serve multiple drivers (graphics driver and computation driver) simultaneously through shared contexts. This multi-functionality allows the GPU to be allocated dynamically based on demand, improving resource utilization efficiency while maintaining relatively simple allocation mechanisms through unified memory space sharing.

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

Solution Approach 2:

The patent merges the graphics context and computation context into a shared context that can be accessed by both drivers. This combining of contexts allows resource utilization efficiency to improve by eliminating redundant resource allocations and enabling both drivers to use the same GPU resources without exclusive allocation, thus balancing simplicity and efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If context switches occur between graphics and computation tasks, then resource sharing is enabled, but performance deteriorates due to resource unutilization during switching

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidprocessing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent ensures continuity of useful action by implementing overlapping execution where computation tasks can proceed in parallel with graphics tasks using shared GPU resources. This eliminates idle time during context switching by allowing both types of tasks to execute simultaneously on different parts of the GPU, thereby maintaining high processing performance while enabling comprehensive resource sharing.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system dynamically adjusts resource allocation between graphics and computation tasks based on real-time demand. This dynamic approach allows the GPU to shift resources flexibly without full context switches, maintaining adaptability for resource sharing while minimizing performance degradation through continuous, adaptive task execution.

Inventive Principle:
Principle #15Dynamics

4Reliability

If full context switching is performed, then complete resource reallocation is achieved, but time and computing resources are wasted during the switching process

Engineering Contradiction:
Improveresource allocation completenessVSAvoidcomputing resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies partial action by implementing partial context switching where only the necessary portions of the context are transferred between drivers rather than performing full context switching. This partial approach maintains reliable resource allocation completeness for the shared portions while significantly reducing the time and computing resources wasted during switching operations.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system discards redundant context information that can be safely omitted during switching and recovers only the essential shared resources. This selective approach maintains reliable resource allocation for critical shared memory and computing units while reducing energy consumption and computing resource waste by avoiding unnecessary context re-loading.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS20250291650A1Application programming interface to indicate device attribute
Publication Date: 2025.09.18 NVIDIA CORP
  • US20250291650A1 patent drawing
  • US20250291650A1 patent drawing
  • US20250291650A1 patent drawing

AI summary

Apparatuses, systems, and techniques to perform an application programming interface (API) to indicate whether one or more processors are able to be controlled by two or more drivers concurrently. An API is performed that will indicate whether a compute driver and a graphics driver can concurrently control a processor.