GPU Scheduler Dynamic Time Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern GPUs face challenges in efficiently scheduling multiple graphics-rich processes on a single GPU, leading to performance issues like frame rate drops due to insufficient processing time allocation, where one process exceeding its time allocation can negatively impact others, and existing scheduling methods fail to effectively prioritize and penalize such processes.
Innovation Solution
A GPU scheduler is introduced that dynamically allocates processing time based on the ratio of requested times, penalizes processes that exceed their allocated time by reducing their future allocations, and prioritizes tasks to ensure each process receives sufficient time, preventing performance degradation for other processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single GPU processes multiple games or graphics-rich processes simultaneously, then the GPU utilization is improved and more applications can run, but the processing time allocation becomes insufficient leading to frame rate drops and performance degradation
Solution Approach 1:
The patent implements a dynamic scheduling system that adjusts the time allocation for each process based on real-time performance monitoring. The scheduler continuously monitors frame rates and processing times, dynamically reallocating GPU time slots to maintain minimum frame rate requirements while maximizing overall GPU utilization across multiple concurrent processes.
Solution Approach 2:
The system employs feedback mechanisms where the scheduler monitors the actual performance of each process (frame rates, processing completion times) and uses this information to adjust future scheduling decisions. When a process fails to meet its minimum frame rate requirement, the system detects this through feedback and reallocates additional time to that process in subsequent cycles, ensuring performance stability.
2Duration of action of moving object
If one process exceeds its allocated processing time, then that process can complete its tasks, but other processes are penalized and their frame rates drop
Solution Approach 1:
The scheduler monitors whether processes complete within their allocated time slots and uses this feedback to adjust future allocations. When a process exceeds its time allocation, the system detects this overrun and compensates by allocating additional time to affected processes in subsequent scheduling cycles, ensuring that no process is permanently penalized for another's excessive usage.
Solution Approach 2:
The system dynamically changes the time allocation parameter for each process based on observed behavior. Processes that consistently exceed their time allocations have their allocated time increased, while processes that complete early may have their time reduced or reallocated, creating a flexible system that adapts to actual workload requirements rather than enforcing rigid time limits.
3Reliability
If the GPU allocates sufficient processing time to each process to maintain minimum frame rates, then performance stability is improved, but the total processing capacity is exceeded and the system cannot handle all processes simultaneously
Solution Approach 1:
The patent implements dynamic time slot allocation that adjusts based on process priority, historical performance, and current system load. High-priority processes or those struggling to meet minimum frame rates receive larger time allocations, while well-performing processes receive smaller allocations, allowing the system to guarantee minimum performance levels while maximizing total processing capacity utilization.
Solution Approach 2:
The system changes the time allocation parameter dynamically based on multiple factors including process priority levels, observed frame rate performance, and overall system utilization. This allows the GPU to handle more processes than would be possible with fixed equal-time allocation, as resources are continuously redistributed to match actual needs and priorities.
Data Source
AI summary
A computer-implemented method, apparatus and computer program product for scheduling tasks, the method comprising: receiving a request from a context for processing a frame by a Graphic Processing Unit (GPU); allocating frame processing time for the context in association with the frame; receiving a command buffer associated with the frame; subject to a pending command buffer collection being empty, submitting the command buffer for processing by the GPU; determining priorities for all command buffers in the pending command buffer collection, including a priority for the command buffer; if the highest priority command buffer is the command buffer, submitting the command buffer for processing; otherwise adding the command buffer to the pending command buffer collection, wherein the frame processing time allocated for the context is reduced by an amount of time related to a time a previous frame associated with the context exceeded its allocated processing time.


