Task scheduling in a GPU
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 type identifiers and associated state data identifying any task specific dependencies, 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 the state data for the task that relates to the completed dependency to indicate that the dependency has completed and updating wakeup event state data of the processor to indicate a wakeup event for the task type identifier of the task;
- identifying one or more candidate task types 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.
A scheduler for a processor comprising:
- a task scheduling engine;
- a task queue comprising tasks having task type identifiers and associated state data identifying any task specific dependencies;
- and
- a data store arranged to store wakeup state data,
- and 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 the state data for the task that relates to the completed dependency to indicate that the dependency has completed by clearing the state data for the task and to update wakeup event state data of the processor to indicate a wakeup event for the task type identifier of the task;
- a second hardware logic block arranged to identify one or more candidate task types 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.
An integrated circuit manufacturing system comprising:
- a non-transitory computer readable storage medium having stored thereon a computer readable 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 type identifiers and associated state data identifying any task specific dependencies;
- and
- a data store arranged to store wakeup state data,
- and 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 the state data for the task that relates to the completed dependency to indicate that the dependency has completed by clearing state data for the task and to update wakeup event state data of the processor to indicate a wakeup event for the task type identifier of the task;
- a second hardware logic block arranged to identify one or more candidate task types 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.
Dependencies are inferred from the claim text.