Parallel Thread Group Scheduling via Priority Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing heterogeneous core processor systems face challenges in efficiently executing parallel computation tasks without a hardware scheduler, leading to inefficiencies in scheduling and flexibility, particularly in handling large-scale parallel processing and preventing low-priority tasks from being indefinitely delayed.
Innovation Solution
A software-based approach that utilizes programmable timers and priority queues to manage parallel thread groups, allowing for dynamic scheduling and execution of parallel threads across heterogeneous accelerating cores, with thread switching logic to optimize resource utilization and prevent starvation of low-priority tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a hardware scheduler is used to manage parallel computation tasks, then scheduling efficiency and task management capability are improved, but device complexity and cost increase
Solution Approach 1:
The patent replaces the hardware scheduler (mechanical/system-level component) with a software-based scheduling mechanism running on the host CPU. The host CPU executes scheduling algorithms and manages parallel computation tasks through software routines, eliminating the need for dedicated hardware scheduling circuits while maintaining task management capabilities.
Solution Approach 2:
The accelerating core is designed to autonomously execute parallel threads once scheduled, without requiring continuous hardware scheduler intervention. The host CPU prepares task configurations and initiates execution, after which the accelerating core independently manages its own parallel thread execution, reducing the need for complex hardware control structures.
2Reliability
If priority-based scheduling is implemented to prevent task starvation, then task execution fairness is improved, but scheduling overhead and system complexity increase
Solution Approach 1:
The patent implements dynamic priority-based scheduling where the host CPU software can adjust task priorities based on system state and task characteristics. This dynamic adjustment allows the system to respond to changing conditions and prevent starvation without requiring complex static hardware priority structures, achieving fairness through flexible software control.
Solution Approach 2:
The scheduling system changes the priority parameter of tasks dynamically based on their execution state and system conditions. By modifying task priority parameters through software, the system can ensure fair execution of parallel computation tasks without needing complex hardware mechanisms, achieving reliability through parameter adjustment.
3Device complexity
If software-based scheduling is used instead of hardware scheduler, then device complexity is reduced, but scheduling speed and real-time performance deteriorate
Solution Approach 1:
The host CPU performs preliminary scheduling actions by preparing task configurations, allocating resources, and setting up parallel thread parameters before transferring control to the accelerating core. This advance preparation allows the software scheduler to operate more efficiently by reducing runtime decision-making overhead and enabling faster task initiation.
Solution Approach 2:
The scheduling system is segmented into distinct phases: host CPU performs high-level task scheduling and configuration, while the accelerating core handles low-level parallel thread execution. This segmentation allows each component to specialize in its optimal operation domain, with the host CPU focusing on scheduling decisions and the accelerating core focusing on execution speed, thereby maintaining both software flexibility and hardware performance.
Data Source
AI summary
Disclosed herein is an apparatus and method for offloading parallel computation tasks. The apparatus inserts requests to execute multiple parallel thread groups into at least one parallel thread group queues, wherein when a preset order of priority exists the requests to execute is inserted into the at least one parallel thread group queues according to the preset order of priority, executes parallel threads of the parallel thread groups using a parallel thread group execution request entry extracted from the parallel thread group queue according to the order of priority, inserts an execution result into an execution result queue when execution of the parallel threads according to an execution sequence scheduled in execution startup routine code is terminated, and checks the execution termination state of the parallel thread groups by checking the execution result queue.


