Command Scheduler for HAPU Virtualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for scheduling tasks on heterogeneous acceleration processing units (HAPUs) face challenges such as false dependency and head blocking, which slow down the scheduling process and hinder efficient resource utilization in virtualization environments.
Innovation Solution
The implementation of a scheduler that differentiates between synchronization and conditional commands, enabling waiting queues for synchronization commands and dispatching them to processing engines, while managing dependencies through virtual queue IDs to prevent false dependencies and head blocking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional scheduling methods are used for HAPUs, then task scheduling is simple, but false dependency and head blocking occur which slow down the scheduling process
Solution Approach 1:
The command queue is segmented into multiple sub-queues (first sub-queue and second sub-queue) based on command types. Synchronization commands are separated from non-synchronization commands, allowing independent processing of each sub-queue. This segmentation eliminates false dependencies between different command types and prevents head blocking, as the processing engine can switch between sub-queues when certain commands are pending.
2Productivity
If tasks are scheduled in strict order, then dependency management is simple, but resource utilization is reduced due to head blocking
Solution Approach 1:
The scheduling mechanism dynamically selects which sub-queue to process based on the current state of commands. When the first sub-queue has pending synchronization commands, the system processes from the second sub-queue, and vice versa. This dynamic switching optimizes resource utilization by preventing head blocking while maintaining proper dependency management through the virtual queue ID association.
3Productivity
If multiple users share HAPUs, then resource efficiency is improved, but false dependencies between user commands increase
Solution Approach 1:
A virtual queue ID is introduced as an intermediary parameter that associates commands with their originating user or task context. The processing engine uses this virtual queue ID to maintain proper execution order and dependency relationships across multiple users' commands. This intermediary mechanism allows efficient multi-user sharing while preventing false dependencies by ensuring commands are processed in the correct logical sequence within each virtual queue.
Data Source
AI summary
A method and an apparatus for scheduling commands in a virtual computing environment includes picking a command. It is determined whether the command is a synchronization command or a conditional command. A synchronization command is an independent command. A conditional command is a dependent command that depends on a synchronization command. In response to the command being determined as the synchronization command, a waiting queue is enabled for the command, the waiting queue storing conditional commands dependent on a running synchronization command. The command is dispatched to a processing engine.


