Methods and apparatus for wave slot retirement procedures
Abstract
The present disclosure relates to methods and devices for graphics processing including an apparatus, e.g., a GPU. The apparatus may receive a plurality of workloads based on a workload order, each of the plurality of workloads being received in the workload order including at least a first workload and a second workload. The apparatus may also allocate one or more workloads of the plurality of workloads to one or more wave slots. Additionally, the apparatus may execute the one or more allocated workloads at the one or more wave slots, such that at least the first workload is executed at the first wave slot and the second workload is executed at the second wave slot. The apparatus may also allocate at least one other workload of the plurality of workloads to at least one previously-allocated wave slot of the one or more wave slots.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . An apparatus for graphics processing, comprising:
a memory; and at least one processor coupled to the memory and configured to:
receive a plurality of workloads based on a workload order, each of the plurality of workloads being received in the workload order including at least a first workload and a second workload;
allocate, based on the workload order, one or more workloads of the plurality of workloads to one or more wave slots of a plurality of wave slots, such that at least the first workload is allocated to a first wave slot of the plurality of wave slots and the second workload is allocated to a second wave slot of the plurality of wave slots;
execute the one or more allocated workloads at the one or more wave slots, such that at least the first workload is executed at the first wave slot and the second workload is executed at the second wave slot; and
allocate, upon finishing executing at least one of the one or more allocated workloads, at least one other workload of the plurality of workloads to at least one previously-allocated wave slot of the one or more wave slots, the at least one previously-allocated wave slot having executed at least one of the one or more allocated workloads.
2 . The apparatus of claim 1 , wherein the at least one processor is further configured to:
store, upon receiving the plurality of workloads, each of the plurality of workloads in a sequence queue, wherein each of the plurality of workloads are stored in the sequence queue based on the workload order.
3 . The apparatus of claim 1 , wherein the at least one processor is further configured to:
determine whether at least one of the one or more allocated workloads is finished executing when at least one of the one or more allocated workloads is still executing.
4 . The apparatus of claim 3 , wherein the at least one other workload is allocated to the at least one previously-allocated wave slot if at least one of the one or more allocated workloads is finished executing when at least one of the one or more allocated workloads is still executing.
5 . The apparatus of claim 3 , wherein the at least one allocated workload that is finished executing is subsequent to the at least one allocated workload that is still executing in the workload order.
6 . The apparatus of claim 1 , wherein the at least one processor is further configured to:
transmit or copy each of the one or more executed workloads to a buffer or an eviction buffer.
7 . The apparatus of claim 6 , wherein the at least one processor is further configured to:
store each of the one or more executed workloads at the buffer or the eviction buffer.
8 . The apparatus of claim 6 , wherein a portion of a general purpose register (GPR) is partitioned for the eviction buffer, such that each of the one or more executed workloads is transmitted or copied to the partitioned portion of the GPR.
9 . The apparatus of claim 1 , wherein the at least one processor is further configured to:
execute, upon allocating the at least one other workload to the at least one previously-allocated wave slot, the at least one other workload at the at least one previously-allocated wave slot.
10 . The apparatus of claim 1 , wherein the at least one other workload is allocated to the at least one previously-allocated wave slot based on the workload order.
11 . The apparatus of claim 1 , wherein the at least one other workload is subsequent to the one or more workloads in the workload order, such that the at least one other workload is received after the one or more workloads.
12 . The apparatus of claim 1 , wherein the first workload is an earliest-received workload in the workload order, the second workload is a second earliest-received workload in the workload order, a third workload is a third earliest-received workload in the workload order, and a fourth workload is a fourth earliest-received workload in the workload order.
13 . The apparatus of claim 12 , wherein the at least one other workload includes at least one of the third workload or the fourth workload, such that at least one of the third workload or the fourth workload is allocated to at least one of the first wave slot or the second wave slot upon finishing executing at least one of the first workload or the second workload.
14 . The apparatus of claim 1 , wherein each of the plurality of workloads corresponds to at least one of a pixel workload, a pixel warp, or a vertex workload.
15 . The apparatus of claim 14 , wherein at least one of the pixel workload, the pixel warp, or the vertex workload is associated with at least one of a shader program, a pixel program, or a vertex program.
16 . The apparatus of claim 1 , wherein each of the plurality of workloads includes at least one of one or more graphics instructions or one or more shader instructions.
17 . The apparatus of claim 1 , wherein the workload order corresponds to a priority of the plurality of workloads.
18 . The apparatus of claim 1 , wherein the one or more workloads are allocated to the one or more wave slots by a streaming processor (SP) of a graphics processing unit (GPU).
19 . A method of graphics processing, comprising:
receiving a plurality of workloads based on a workload order, each of the plurality of workloads being received in the workload order including at least a first workload and a second workload; allocating, based on the workload order, one or more workloads of the plurality of workloads to one or more wave slots of a plurality of wave slots, such that at least the first workload is allocated to a first wave slot of the plurality of wave slots and the second workload is allocated to a second wave slot of the plurality of wave slots; executing the one or more allocated workloads at the one or more wave slots, such that at least the first workload is executed at the first wave slot and the second workload is executed at the second wave slot; and allocating, upon finishing executing at least one of the one or more allocated workloads, at least one other workload of the plurality of workloads to at least one previously-allocated wave slot of the one or more wave slots, the at least one previously-allocated wave slot having executed at least one of the one or more allocated workloads.
20 . The method of claim 19 , further comprising:
storing, upon receiving the plurality of workloads, each of the plurality of workloads in a sequence queue, wherein each of the plurality of workloads are stored in the sequence queue based on the workload order.
21 . The method of claim 19 , further comprising:
determining whether at least one of the one or more allocated workloads is finished executing when at least one of the one or more allocated workloads is still executing, wherein the at least one other workload is allocated to the at least one previously-allocated wave slot if at least one of the one or more allocated workloads is finished executing when at least one of the one or more allocated workloads is still executing, wherein the at least one allocated workload that is finished executing is subsequent to the at least one allocated workload that is still executing in the workload order.
22 . The method of claim 19 , further comprising:
transmitting or copying each of the one or more executed workloads to a buffer or an eviction buffer; and storing each of the one or more executed workloads at the buffer or the eviction buffer.
23 . The method of claim 22 , wherein a portion of a general purpose register (GPR) is partitioned for the eviction buffer, such that each of the one or more executed workloads is transmitted or copied to the partitioned portion of the GPR.
24 . The method of claim 19 , further comprising:
executing, upon allocating the at least one other workload to the at least one previously-allocated wave slot, the at least one other workload at the at least one previously-allocated wave slot.
25 . The method of claim 19 , wherein the at least one other workload is allocated to the at least one previously-allocated wave slot based on the workload order, wherein the at least one other workload is subsequent to the one or more workloads in the workload order, such that the at least one other workload is received after the one or more workloads.
26 . The method of claim 19 , wherein the first workload is an earliest-received workload in the workload order, the second workload is a second earliest-received workload in the workload order, a third workload is a third earliest-received workload in the workload order, and a fourth workload is a fourth earliest-received workload in the workload order,
wherein the at least one other workload includes at least one of the third workload or the fourth workload, such that at least one of the third workload or the fourth workload is allocated to at least one of the first wave slot or the second wave slot upon finishing executing at least one of the first workload or the second workload.
27 . The method of claim 19 , wherein each of the plurality of workloads corresponds to at least one of a pixel workload, a pixel warp, or a vertex workload, wherein at least one of the pixel workload, the pixel warp, or the vertex workload is associated with at least one of a shader program, a pixel program, or a vertex program.
28 . The method of claim 19 , wherein the one or more workloads are allocated to the one or more wave slots by a streaming processor (SP) of a graphics processing unit (GPU).
29 . An apparatus for graphics processing, comprising:
means for receiving a plurality of workloads based on a workload order, each of the plurality of workloads being received in the workload order including at least a first workload and a second workload; means for allocating, based on the workload order, one or more workloads of the plurality of workloads to one or more wave slots of a plurality of wave slots, such that at least the first workload is allocated to a first wave slot of the plurality of wave slots and the second workload is allocated to a second wave slot of the plurality of wave slots; means for executing the one or more allocated workloads at the one or more wave slots, such that at least the first workload is executed at the first wave slot and the second workload is executed at the second wave slot; and means for allocating, upon finishing executing at least one of the one or more allocated workloads, at least one other workload of the plurality of workloads to at least one previously-allocated wave slot of the one or more wave slots, the at least one previously-allocated wave slot having executed at least one of the one or more allocated workloads.
30 . A computer-readable medium storing computer executable code for graphics processing, the code when executed by a processor causes the processor to:
receive a plurality of workloads based on a workload order, each of the plurality of workloads being received in the workload order including at least a first workload and a second workload; allocate, based on the workload order, one or more workloads of the plurality of workloads to one or more wave slots of a plurality of wave slots, such that at least the first workload is allocated to a first wave slot of the plurality of wave slots and the second workload is allocated to a second wave slot of the plurality of wave slots; execute the one or more allocated workloads at the one or more wave slots, such that at least the first workload is executed at the first wave slot and the second workload is executed at the second wave slot; and allocate, upon finishing executing at least one of the one or more allocated workloads, at least one other workload of the plurality of workloads to at least one previously-allocated wave slot of the one or more wave slots, the at least one previously-allocated wave slot having executed at least one of the one or more allocated workloads.Join the waitlist — get patent alerts
Track US2022357983A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.