US2022357983A1PendingUtilityA1

Methods and apparatus for wave slot retirement procedures

Assignee: QUALCOMM INCPriority: May 7, 2021Filed: May 7, 2021Published: Nov 10, 2022
Est. expiryMay 7, 2041(~14.8 yrs left)· nominal 20-yr term from priority
G06T 1/20G06F 2212/302G06F 12/0875G06F 9/4881
48
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.