IP Library Patent Application 18621392
Patent Application
App. No. 18/621,392

TASK DEPENDENCIES

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
18/621,392
Abstract

A method of managing task dependencies within a task queue of a GPU determines a class ID and a resource ID for a task and also for any parent task of the task and outputting the class IDs and resource IDs for both the task itself and any parent task of the task for storage associated with the task in a task queue. The class ID identifies a class of the task from a hierarchy of task classes and the resource ID of the task identifies resources allocated and/or written to by the task.

Claims (40)

1 . A method of operating a graphics processing unit (GPU), the method comprising scheduling tasks within the GPU by:

examining tasks in a task queue and parameters associated with the tasks, wherein the parameters comprise a class ID and a resource ID for both the task itself and any parent task of the task, wherein a class ID identifies a class of the task from a hierarchy of task classes and a resource ID of the task identifies resources allocated and/or written to by the task;

selecting a task for execution based on an order of the tasks in the queue and the parameters; and

sending the selected task for execution.

2 . The method according to claim 1 , wherein selecting a task for execution based on an order of the tasks in the queue and the parameters comprises:

selecting a task in the task queue with a parent task class ID and parent resource ID that does not match the class ID and resource ID of any tasks that precede it in the task queue.

3 . The method according to claim 1 , wherein a resource ID is assigned to a task when the task is created.

4 . The method according to claim 1 , wherein selecting a task for execution is additionally based on a master unit that issued the task in the task queue.

5 . The method according to claim 1 , wherein the task queue comprises tasks queued for execution and tasks currently running.

6 . The method according to claim 1 , further comprising managing task dependencies within the task queue of the GPU by:

determining a class ID and a resource ID for a task and also for any parent task of the task, wherein a class ID identifies a class of the task from a hierarchy of task classes and a resource ID of the task identifies resources allocated and/or written to by the task; and

outputting the class IDs and resource IDs for both the task itself and any parent task of the task for storage associated with the task in a task queue.

7 . The method according to claim 6 , wherein determining a resource ID for a task comprises assigning a resource ID to the task.

8 . The method according to claim 7 , wherein assigning a resource ID to the task comprises:

allocating resources to the task; and

assigning a resource ID for the allocated resources to the task.

9 . The method according to claim 6 , wherein the resources comprise shared registers, coefficient registers or local memory registers.

10 . A resource management unit of a graphics processing unit (GPU), comprising:

hardware logic arranged to determine a class ID and a resource ID for a task and also for any parent task of the task, wherein a class ID identifies a class of the task from a hierarchy of task classes and a resource ID of the task identifies resources allocated and/or written to by the task; and

an output, arranged to output the class IDs and resource IDs for both the task itself and any parent task of the task for storage associated with the task in a task queue.

11 . The resource management unit according to claim 10 , wherein the hardware logic is arranged to determine a resource ID for a task by assigning a resource ID to the task.

12 . The resource management unit according to claim 11 , wherein assigning a resource ID to the task comprises:

allocating resources to the task; and

assigning a resource ID for the allocated resources to the task.

13 . The resource management unit according to claim 10 , wherein the resources comprise shared registers, coefficient registers or local memory registers.

14 . Scheduling and processing logic of a graphics processing unit (GPU), comprising:

analysis logic arranged to examining tasks in a task queue and parameters associated with the tasks, wherein the parameters comprise a class ID and a resource ID for both the task itself and any parent task of the task, wherein a class ID identifies a class of the task from a hierarchy of task classes and a resource ID of the task identifies resources allocated and/or written to by the task; and

selection logic arranged to select a task for execution based on an order of the tasks in the queue and the parameters and send the selected task for execution.

15 . The scheduling and processing logic according to claim 14 , wherein the selection logic is arranged to select a task for execution based on an order of the tasks in the queue and the parameters by:

selecting a task in the task queue with a parent task class ID and parent resource ID that does not match the class ID and resource ID of any tasks that precede it in the task queue.

16 . The scheduling and processing logic according to claim 14 , wherein a resource ID is assigned to a task when the task is created.

17 . The scheduling and processing logic according to claim 14 , wherein the selection logic is further arranged to select a task for execution based on a master unit that issued the task in the task queue.

18 . The scheduling and processing logic according to claim 14 , wherein the task queue comprises tasks queued for execution and tasks currently running.

19 . A graphics processing unit (GPU) comprising:

the resource management unit as set forth in claim 10 ;

a task queue;

a plurality of resources;

analysis logic arranged to examining tasks in said task queue and parameters associated with the tasks, wherein the parameters comprise a class ID and a resource ID for both the task itself and any parent task of the task, wherein

a class ID identifies a class of the task from a hierarchy of task classes and a resource ID of the task identifies resources of said plurality of resources allocated and/or written to by the task; and

selection logic arranged to select a task for execution based on an order of the tasks in the queue and the parameters and send the selected task for execution.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →