Patentable/Patents/US-11875197
US-11875197

Management of thrashing in a GPU

PublishedJanuary 16, 2024
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Systems, apparatuses, and methods for managing a number of wavefronts permitted to concurrently execute in a processing system. An apparatus includes a register file with a plurality of registers and a plurality of compute units configured to execute wavefronts. A control unit of the apparatus is configured to allow a first number of wavefronts to execute concurrently on the plurality of compute units. The control unit is configured to allow no more than a second number of wavefronts to execute concurrently on the plurality of compute units, wherein the second number is less than the first number, in response to detection that thrashing of the register file is above a threshold. The control unit is configured to detect said thrashing based at least in part on a number of registers in use by executing wavefronts that spill to memory.

Patent Claims
17 claims

Legal claims defining the scope of protection, as filed with the USPTO.

2

2. The apparatus as recited in claim 1, wherein the control unit is configured to detect said thrashing based at least in part on a number of registers in use by executing wavefronts that spill to memory.

3

3. The apparatus as recited in claim 1, wherein the control unit is configured to compare the number of registers that spill to the memory on a periodic basis.

4

4. The apparatus as recited in claim 1, wherein the control unit is configured to determine said thrashing is above the threshold based at least in part on an access to a probabilistic data structure.

5

5. The apparatus as recited in claim 4, wherein the control unit is configured to access the probabilistic data structure using identifiers of a given workgroup and a given corresponding frame.

6

6. The apparatus as recited in claim 5, wherein the control unit is configured to access the probabilistic data structure using a concatenation of the identifier of the given workgroup and the identifier of the given corresponding frame.

7

7. The apparatus as recited in claim 1, further comprising a first probabilistic data structure and a second probabilistic data structure, wherein the control unit is configured to access the first probabilistic data structure when register values are spilled to the memory and access the second probabilistic data structure when register values are restored from the memory to the register file.

9

9. The method as recited in claim 8, further comprising detecting said thrashing based at least in part on a number of registers in use by executing wavefronts that spill to memory.

10

10. The method as recited in claim 8, further comprising comparing the number of registers that spill to the memory on a periodic basis.

11

11. The method as recited in claim 8, further comprising determining said thrashing is above the threshold based at least in part on an access to a probabilistic data structure.

12

12. The method as recited in claim 11, further comprising accessing the probabilistic data structure using identifiers of a given workgroup and a given corresponding frame.

13

13. The method as recited in claim 12, further comprising accessing the probabilistic data structure using a concatenation of the identifier of the given workgroup and the identifier of the given corresponding frame.

14

14. The method as recited in claim 8, further comprising access a first probabilistic data structure when register values are spilled to the memory, and accessing a second probabilistic data structure, different from the first probabilistic data structure, when register values are restored from the memory to the register file.

16

16. The apparatus as recited in claim 15, further comprising a workgroup limit register configured to store a value that indicates a number of workgroups that are permitted to spill register values to memory.

17

17. The apparatus as recited in claim 16, wherein the value stored by the workgroup limit register indicates how many oldest workgroups are permitted to allocate frames even if spilling is required.

18

18. The apparatus as recited in claim 15, wherein the apparatus is configured to decrement a value stored in the workgroup limit register in response to detecting thrashing of the register file is above the value stored in the threshold register.

19

19. The apparatus as recited in claim 15, wherein the apparatus is configured to spill register values corresponding to older wavefronts responsive to thrashing being below the threshold.

20

20. The apparatus as recited in claim 19, wherein the apparatus is configured to switch from spilling register values of least recently executed wavefronts to spilling register values of wavefronts that are younger than other wavefronts being executed, response to thrashing being above the threshold.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

December 29, 2020

Publication Date

January 16, 2024

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Management of thrashing in a GPU” (US-11875197). https://patentable.app/patents/US-11875197

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.