IP Library Granted Patent US 11,928,754
Granted Patent B2
US 11,928,754 · App. 17/658,433 · Granted Mar 12, 2024

GPU wave-to-wave optimization

Inventor: Andrew Evan Gruber (Arlington, MA)
Assignee: QUALCOMM Incorporated
G06T1/20G06T15/005G06T15/80
View Patent ↗
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 11,928,754
App. No.
17/658,433
Granted
Mar 12, 2024
Kind
B2
Abstract

This disclosure provides systems, devices, apparatus, and methods, including computer programs encoded on storage media, for GPU wave-to-wave optimization. A graphics processor may execute a shader program for a first wave associated with a draw call or a compute kernel. The graphics processor may identify at least one first indication for the first wave associated with the draw call or the compute kernel. The graphics processor may store the at least one first indication for the first wave to a memory location. The graphics processor may execute the shader program for at least one second wave associated with the draw call or the compute kernel. The execution of the shader program for the at least one second wave may be based on the shader program for the at least one second wave reading the memory location to retrieve the at least one first indication.

Claims (61)

1. An apparatus for graphics processing, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

execute, based on an execution path of a plurality of execution paths, a shader program for a first wave associated with a draw call or a compute kernel, wherein the shader program comprises the plurality of execution paths, and wherein to execute the shader program for the first wave, the at least one processor is further configured to;

identify at least one first indication associated with the execution path; and

store the at least one first indication for the first wave to a memory location; and

execute, based on the execution path of the plurality of execution paths, the shader program for at least one second wave associated with the draw call or the compute kernel, wherein to execute the shader program for the at least one second wave, the at least one processor is further configured to:

retrieve the at least one first indication from the memory location; and

select the execution path based on the at least one first indication.

2. The apparatus of claim 1 , wherein the draw call is associated with a plurality of primitives in a scene.

3. The apparatus of claim 1 , wherein the compute kernel is associated with a plurality of work items.

4. The apparatus of claim 1 , wherein the at least one first indication is at least one of: an alpha value, an angle of reflection, a specularity indication, or a shadow indication.

5. The apparatus of claim 1 , wherein the at least one first indication is stored by a single fiber for the first wave.

6. The apparatus of claim 1 , wherein the memory location is a local constant storage location.

7. The apparatus of claim 1 , the at least one processor being further configured to:

detect whether a value of the at least one first indication matches at least one optimized execution path in the shader program.

8. The apparatus of claim 7 , wherein the execution of the shader program for the at least one second wave is optimized if the value of the at least one first indication matches the at least one optimized execution path.

9. The apparatus of claim 7 , wherein the at least one optimized execution path is associated with at least one of a shader processor of a graphics processing unit (GPU) or a compiler of the GPU.

10. The apparatus of claim 1 , wherein the execution of the shader program for the at least one second wave is after the execution of the shader program for the first wave.

11. The apparatus of claim 1 , the at least one processor being further configured to:

execute, based on the execution path of the plurality of execution paths, the shader program for at least one third wave associated with the draw call or the compute kernel, wherein to execute the shader program for the at least one third wave, the at least one processor is further configured to:

determine the at least one indication is incorrect for the third wave

identify at least one second indication associated with a second execution path of the plurality of execution paths; and

store the at least one second indication to the memory location.

12. The apparatus of claim 1 , further comprising at least one of an antenna or a transceiver coupled to the at least one processor, wherein the apparatus is a wireless communication device.

13. A method of graphics processing, comprising:

executing, based on an execution path of a plurality of execution paths, a shader program for a first wave associated with a draw call or a compute kernel, wherein the shader program comprises the plurality of execution paths, and wherein executing the shader program for the first wave comprises;

identifying at least one first indication associated with the execution path; and

storing the at least one first indication to a memory location; and

executing, based on the execution path of the plurality of execution paths, the shader program for at least one second wave associated with the draw call or the compute kernel, wherein executing the shader program for the at least one second wave comprises:

retrieving the at least one first indication from the memory location; and

selecting the execution path based on the at least one first indication.

14. The method of claim 13 , wherein the draw call is associated with a plurality of primitives in a scene.

15. The method of claim 13 , wherein the compute kernel is associated with a plurality of work items.

16. The method of claim 13 , wherein the at least one first indication is at least one of: an alpha value, an angle of reflection, a specularity indication, or a shadow indication.

17. The method of claim 13 , wherein the at least one first indication is stored by a single fiber for the first wave.

18. The method of claim 13 , wherein the memory location is a local constant storage location.

19. The method of claim 13 , further comprising:

detecting whether a value of the at least one first indication matches at least one optimized execution path in the shader program.

20. The method of claim 19 , wherein the execution of the shader program for the at least one second wave is optimized if the value of the at least one first indication matches the at least one optimized execution path.

21. The method of claim 19 , wherein the at least one optimized execution path is associated with at least one of a shader processor of a graphics processing unit (GPU) or a compiler of the GPU.

22. The method of claim 13 , wherein the execution of the shader program for the at least one second wave is after the execution of the shader program for the first wave.

23. The method of claim 13 , further comprising:

executing, based on the execution path of the plurality of execution paths, the shader program for at least one third wave associated with the draw call or the compute kernel, wherein executing the shader program for the at least one third wave comprises:

determining the at least one indication is incorrect for the third wave;

identifying at least one second indication associated with a second execution path of the plurality of execution paths; and

storing the at least one second indication to the memory location.

24. A non-transitory computer-readable medium storing computer executable code, the code when executed by at least one processor, causes the at least one processor to:

execute, based on an execution path of a plurality of execution paths, a shader program for a first wave associated with a draw call or a compute kernel, wherein the shader program comprises the plurality of execution paths, and wherein to execute the shader program for the first wave, the code further causes the at least one processor to;

identify at least one first indication associated with the execution path; and

store the at least one first indication for the first wave to a memory location; and

execute, based on the execution path of the plurality of execution paths, the shader program for at least one second wave associated with the draw call or the compute kernel, wherein to execute of the shader program for the at least one second wave, the code further causes the at least one processor to:

retrieve the at least one first indication from the memory location; and

select the execution path based on the at least one first indication.

25. The non-transitory computer-readable medium of claim 24 , wherein the draw call is associated with a plurality of primitives in a scene.

26. The non-transitory computer-readable medium of claim 24 , wherein the compute kernel is associated with a plurality of work items.

27. The non-transitory computer-readable medium of claim 24 , wherein the at least one first indication is at least one of: an alpha value, an angle of reflection, a specularity indication, or a shadow indication.

28. The non-transitory computer-readable medium of claim 24 , wherein the at least one first indication is stored by a single fiber for the first wave.

29. The non-transitory computer-readable medium of claim 24 , wherein the memory location is a local constant storage location.

30. The non-transitory computer-readable medium of claim 24 , the code further causing the at least one processor to:

detect whether a value of the at least one first indication matches at least one optimized execution path in the shader program.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2022
From: GRUBER, ANDREW EVAN
To: QUALCOMM INCORPORATED
Reel/Frame 059656/0530 →
Continuity (1)
Related Publication 20230325962A1 · Oct 12, 2023