GPU Driver Concurrency API for Shared Processor Control
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
4Reliability
If full context switching is performed, then complete resource reallocation is achieved, but time and computing resources are wasted during the switching process
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.
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.
Data Source
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.


