REGISTER COMPACTION WITH EARLY RELEASE

Systems, apparatuses, and methods for implementing register compaction with early release are disclosed. A processor includes at least a command processor, a plurality of compute units, a plurality of registers, and a control unit. Registers are statically allocated to wavefronts by the control unit...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: GREATHOUSE, Joseph Lee, EMBERLING, Brian D, GUTIERREZ, Anthony Thomas
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Systems, apparatuses, and methods for implementing register compaction with early release are disclosed. A processor includes at least a command processor, a plurality of compute units, a plurality of registers, and a control unit. Registers are statically allocated to wavefronts by the control unit when wavefronts are launched by the command processor on the compute units. In response to determining that a first set of registers, previously allocated to a first wavefront, are no longer needed, the first wavefront executes an instruction to release the first set of registers. The control unit detects the executed instruction and releases the first set of registers to the available pool of registers to potentially be used by other wavefronts. Then, the control unit can allocate the first set of registers to a second wavefront for use by threads of the second wavefront while the first wavefront is still active. Des systèmes, des appareils et des procédés permettant de mettre en œuvre un compactage de registre à libération précoce sont divulgués. Un processeur comprend au moins un processeur de commande, une pluralité d'unités de calcul, une pluralité de registres et une unité de commande. Des registres sont alloués de manière statique à des fronts d'onde par l'unité de commande lorsque des fronts d'onde sont lancés par le processeur de commande sur les unités de calcul. En réponse à la détermination selon laquelle un premier ensemble de registres, préalablement attribué à un premier front d'onde, n'est plus nécessaire, le premier front d'onde exécute une instruction pour libérer le premier ensemble de registres. L'unité de commande détecte l'instruction exécutée et libère le premier ensemble de registres dans le groupe disponible de registres pouvant être potentiellement utilisés par d'autres fronts d'onde. Ensuite, l'unité de commande peut attribuer le premier ensemble de registres à un second front d'onde destiné à être utilisé par des fils du second front d'onde tandis que le premier front d'onde est encore actif.