US2024045718A1PendingUtilityA1
Fine-grained conditional dispatching
Est. expirySep 24, 2040(~14.2 yrs left)· nominal 20-yr term from priority
G06F 9/3851G06F 9/3888G06F 9/4881G06F 9/545G06F 9/3838G06F 9/3009G06F 9/522G06F 9/5038
66
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Techniques for executing workgroups are provided. The techniques include executing, for a first workgroup of a first kernel dispatch, a workgroup dependency instruction that includes an indication to prioritize execution of a second workgroup of a second kernel dispatch, and in response to the workgroup dependency instruction, dispatching the second workgroup of the second kernel dispatch prior to dispatching a third workgroup of the second kernel dispatch, wherein no workgroup dependency instruction including an indication to prioritize execution of the third workgroup has been executed.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for executing workgroups, the method comprising:
launching a first workgroup from a first ready-to-dispatch kernel instance; in response to determining that dependencies for the first workgroup have been satisfied, avoiding executing a deschedule instruction for the first workgroup; launching a second workgroup from a second ready-to-dispatch kernel instance; and in response to determining that dependencies for the second workgroup have not been satisfied, executing a deschedule instruction for the second workgroup.
2 . The method of claim 1 , further comprising:
identifying the first ready-to-dispatch kernel instance as a kernel instance dependent on another kernel instance for which at least one workgroup has completed execution.
3 . The method of claim 1 , wherein:
determining that dependencies for the first workgroup have been satisfied is performed by instructions of the first workgroup.
4 . The method of claim 1 , wherein:
avoiding executing the deschedule instruction for the first workgroup causes a remainder of the first workgroup to execute without being descheduled.
5 . The method of claim 1 , wherein:
launching the first workgroup is performed in response to a different workgroup completing execution.
6 . The method of claim 1 , wherein:
determining that dependencies for the second workgroup have not been satisfied is performed by instructions of the second workgroup.
7 . The method of claim 1 , wherein:
executing the deschedule instruction for the second workgroup results in the second workgroup being descheduled.
8 . The method of claim 7 , further comprising:
in response to the second workgroup being descheduled, scheduling a third workgroup for a third ready-to-dispatch kernel instance.
9 . The method of claim 1 , wherein the first kernel instance is the second kernel instance.
10 . A device, comprising:
one or more compute units; and a dispatcher, wherein the dispatcher is configured to:
launch a first workgroup from a first ready-to-dispatch kernel instance for execution on the one or more compute units, and
launch a second workgroup from a second ready-to-dispatch kernel instance for execution on the one or more compute units; and
wherein the one or more compute units are configured to:
in response to determining that dependencies for the first workgroup have been satisfied, avoid executing a deschedule instruction for the first workgroup, and
in response to determining that dependencies for the second workgroup have not been satisfied, execute a deschedule instruction for the second workgroup.
11 . The device of claim 10 , wherein the dispatcher is further configured to:
identify the first ready-to-dispatch kernel instance as a kernel instance dependent on another kernel instance for which at least one workgroup has completed execution.
12 . The device of claim 10 , wherein:
determining that dependencies for the first workgroup have been satisfied is performed by instructions of the first workgroup.
13 . The device of claim 10 , wherein:
avoiding executing the deschedule instruction for the first workgroup causes a remainder of the first workgroup to execute without being descheduled.
14 . The device of claim 10 , wherein:
launching the first workgroup is performed in response to a different workgroup completing execution.
15 . The device of claim 10 , wherein:
determining that dependencies for the second workgroup have not been satisfied is performed by instructions of the second workgroup.
16 . The device of claim 10 , wherein:
executing the deschedule instruction for the second workgroup results in the second workgroup being descheduled.
17 . The device of claim 16 , wherein the dispatcher is further configured to:
in response to the second workgroup being descheduled, schedule a third workgroup for a third ready-to-dispatch kernel instance.
18 . The device of claim 10 , wherein the first kernel instance is the second kernel instance.
19 . A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:
launching a first workgroup from a first ready-to-dispatch kernel instance; in response to determining that dependencies for the first workgroup have been satisfied, avoiding executing a deschedule instruction for the first workgroup; launching a second workgroup from a second ready-to-dispatch kernel instance; and in response to determining that dependencies for the second workgroup have not been satisfied, executing a deschedule instruction for the second workgroup.
20 . The non-transitory computer-readable medium of claim 19 , wherein the operations further comprise:
identifying the first ready-to-dispatch kernel instance as a kernel instance dependent on another kernel instance for which at least one workgroup has completed execution.Join the waitlist — get patent alerts
Track US2024045718A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.