Task Scheduling in a GPU Using Wakeup Event State Data
AssigneeImagination Technologies Limited
InventorsSimon Nield, Adam de Grasse, Luca Iuliano, Ollie Mower, Yoong-Chert Foo
Life of this patent
Estimating the term…
Abstract
A method of scheduling tasks within a GPU or other highly parallel processing unit is described which is both age-aware and wakeup event driven. Tasks which are received are added to an age-based task queue. Wakeup event bits for task types, or combinations of task types and data groups, are set in response to completion of a task dependency and these wakeup event bits are used to select an oldest task from the queue that satisfies predefined criteria.
Claims20
A method of scheduling tasks in a task queue within a processor, the task queue comprising tasks having task identifiers, wherein a task identifier is a task type identifier or a source identifier, the method comprising:
- in response to receiving, at a task scheduling engine, an indication that a dependency for a task in the task queue has completed, updating wakeup event state data of the processor to indicate a wakeup event for the task identifier of the task;
- identifying one or more candidate task types or sources based on the wakeup event state data indicating a wakeup event;
- and
- selecting a task for execution based on the identified one or more candidate task types or sources.
A scheduler for a processor comprising:
- a task scheduling engine;
- a task queue comprising tasks having task identifiers, wherein a task identifier is a task type identifier or a source identifier;
- and
- a data store arranged to store wakeup state data;
- wherein the task scheduling engine comprises:
- a first hardware logic block arranged, in response to receiving an indication that a dependency for a task in the task queue has completed, to update wakeup event state data of the processor to indicate a wakeup event for the task identifier of the task;
- and
- a second hardware logic block arranged to identify one or more candidate task types or sources based on the wakeup event state data indicating a wakeup event and to select a task for execution based on the identified one or more candidate task types or sources.
An integrated circuit manufacturing system comprising:
- a non-transitory computer readable storage medium having stored thereon a computer readable dataset description of an integrated circuit that describes a scheduler;
- a layout processing system configured to process the integrated circuit description so as to generate a circuit layout description of an integrated circuit embodying the scheduler;
- and
- an integrated circuit generation system configured to manufacture the scheduler according to the circuit layout description,
- wherein the scheduler comprises:
- a task scheduling engine;
- a task queue comprising tasks having task identifiers, wherein a task identifier is a task type identifier or a source identifier;
- and
- a data store arranged to store wakeup state data;
- wherein the task scheduling engine comprises:
- a first hardware logic block arranged, in response to receiving an indication that a dependency for a task in the task queue has completed, to update wakeup event state data of the processor to indicate a wakeup event for the task identifier of the task;
- and
- a second hardware logic block arranged to identify one or more candidate task types or sources based on the wakeup event state data indicating a wakeup event and to select a task for execution based on the identified one or more candidate task types or sources.
Dependencies are inferred from the claim text.