Aufeinanderfolgende Wiederholungen von divergenten Operationen

Computer-implementiertes Verfahren zum Wiederholen einer divergenten Zugriffsoperation auf gemeinsam genutzte Ressource, wobei das Verfahren aufweist:Auswählen eines ersten Threads und eines zweiten Threads von einer Gruppe von Threads, welche konfiguriert sind, eine Anweisung in einer Mehr-Stufen-P...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Paranjape, Omkar, Carlton, Stewart Glenn, Fettermann, Michael, Rajendran, Anjana, Heinrich, Steven James, Choquette, Jack Hilaire, Selvanesan, Rajeshwaran, Hill, Eric Lyell, Hahn, Douglas J
Format: Patent
Sprache:ger
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Computer-implementiertes Verfahren zum Wiederholen einer divergenten Zugriffsoperation auf gemeinsam genutzte Ressource, wobei das Verfahren aufweist:Auswählen eines ersten Threads und eines zweiten Threads von einer Gruppe von Threads, welche konfiguriert sind, eine Anweisung in einer Mehr-Stufen-Pipeline simultan auszuführen, wobei der erste Thread auf eine erste gemeinsam genutzte Ressource zugreift, wobei der zweite Thread auf eine zweite gemeinsam genutzte Ressource zugreift, wobei auf die erste und die zweite gemeinsam genutzte Ressource nicht in derselben Zugriffssoperation zugegriffen werden kann, wodurch der erste Thread und der zweite Thread nicht bedient sind;Auswählen, aus der Gruppe von Threads, eines ersten Satzes von Threads, welche mit dem ersten Thread zu assoziieren sind, wobei jeder Thread in dem ersten Satz von Threads konfiguriert ist, auf die erste gemeinsam genutzte Ressource zuzugreifen;Auswählen, aus der Gruppe von Threads, eines zweiten Satzes von Threads, welche mit dem zweiten Thread zu assoziieren sind, wobei jeder Thread in dem zweiten Satz von Threads konfiguriert ist, auf die zweite gemeinsam genutzte Ressource zuzugreifen;Einfügen einer ersten Wiederholung-Operation, welche mit dem ersten Thread und dem ersten Satz von Threads assoziiert ist, in die Mehr-Stufen-Pipeline, um die Anweisung auszuführen; undEinfügen einer zweiten Wiederholung-Operation, welche mit dem zweiten Thread und dem zweiten Satz von Threads assoziiert ist, in die Mehr-Stufen-Pipeline, um die Anweisung auszuführen, wobei die zweite Wiederholung-Operation in die Mehr-Stufen-Pipeline seriell relativ zu der ersten Wiederholung-Operation eingefügt ist, und um einen Taktzyklus versetzt die Mehr-Stufen-Pipeline durchläuft, wobei maximal zwei Wiederholungs-Operationen aufeinanderfolgend durchgeführt werden unabhängig von der Anzahl der erforderlichen Wiederholung-Operationen. One embodiment of the present invention sets forth an approach for executing replay operations for divergent operations in a parallel processing subsystem. Specifically, the streaming multiprocessor (SM) includes a multistage pipeline configured to batch two or more replay operations for processing via replay loop. A logic element within the multistage pipeline detects whether the current pipeline stage is accessing a shared resource, such as loading data from a shared memory. If the threads are accessing data which are distributed across multiple cache lines, then the multistage pipeline