GPU Driver Time Slicing Priority Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing scheduling algorithms for graphics processing units (GPUs) struggle to balance workload execution among multiple active GPU drivers, leading to starvation of lower priority drivers and performance issues such as reduced frame rates.
Innovation Solution
A method that allocates a portion of a scheduling interval to each active GPU driver and uses a priority-based scheduling algorithm to select drivers for execution. The priority level of drivers is adjusted based on their execution performance, with increased priority for drivers completing their workloads within allocated time and reduced priority for those not utilizing their allocated time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a priority-based scheduling algorithm is used to execute GPU drivers, then high priority drivers can be executed efficiently, but lower priority drivers may be starved of execution time
Solution Approach 1:
The scheduling interval is segmented into multiple time slices, with each time slice allocated to a specific GPU driver based on its priority level. This segmentation ensures that high priority drivers receive adequate execution time while lower priority drivers are also guaranteed minimum execution opportunities, preventing starvation of any driver.
2Reliability
If time slicing is implemented to prevent driver starvation, then all drivers get execution time, but context switching frequency increases
Solution Approach 1:
The scheduler implements periodic time slicing where each GPU driver is allocated specific time intervals based on its priority. This periodic allocation pattern allows the system to balance execution guarantees for all drivers while controlling context switching frequency through optimized slice duration and allocation strategies.
3Productivity
If priority levels are adjusted dynamically based on execution performance, then scheduling optimization is achieved, but scheduling algorithm complexity increases
Solution Approach 1:
The scheduling algorithm incorporates feedback mechanisms that monitor execution performance of each GPU driver and dynamically adjust priority levels and time slice allocations accordingly. This feedback-driven approach optimizes workload scheduling by adapting to actual driver performance while maintaining manageable algorithmic complexity through structured adjustment rules.
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A method of scheduling a plurality of active GPU drivers in a GPU is described. The method comprises, for one or more of the plurality of active GPU drivers, allocating a portion of a scheduling interval to the active GPU driver and selecting an active GPU driver for execution according to a priority-based scheduling algorithm. In response to an active GPU driver executing within its allocated portion, the priority level of the active GPU driver is increased, in response to the active GPU driver completing its workload within its allocated portion the priority level of the active GPU driver is reset and in response to the active GPU driver executing for its whole allocated portion, the priority level of the active GPU driver is reduced. The priority levels of each active GPU driver are reset to their initial priority levels at the start of each scheduling interval. To be accompanied, when published, by Figure 1 of the accompanying drawings.