Fine-grained conditional dispatching
AssigneeAdvanced Micro Devices, Inc.
InventorsAlexandru Dutu, Marcus Nathaniel Chow, Matthew D. Sinclair, Bradford M. Beckmann, David A. Wood
Life of this patent
Estimating the term…
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.
Claims36
A method for executing workgroups, the method comprising:
- 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.
A device, comprising:
- a compute unit;
- and
- a dispatcher;
- wherein the compute unit is configured to execute, 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
- wherein the dispatcher is configured to, in response to the workgroup dependency instruction, dispatch 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.
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.
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.
Dependencies are inferred from the claim text.