Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
Eine Ausführungsform der vorliegenden Erfindung liegt eine Technik zum dynamischen Scheduling und Managen von Rechentask mit unterschiedlichen Ausführungsprioritätsstufen dar. Der Scheduling-Schaltkreis organisiert die Rechentasks in Gruppen basierend auf Prioritätsstufen. Die Rechentasks mögen dann...
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Patent |
Sprache: | ger |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Eine Ausführungsform der vorliegenden Erfindung liegt eine Technik zum dynamischen Scheduling und Managen von Rechentask mit unterschiedlichen Ausführungsprioritätsstufen dar. Der Scheduling-Schaltkreis organisiert die Rechentasks in Gruppen basierend auf Prioritätsstufen. Die Rechentasks mögen dann unter Verwendung verschiedener Schedulingschemen, wie beispielsweise Ringverteilung (,,round-robin"), Priorität und partitionierter (,,partitioned") Priorität, zur Ausführung ausgewählt werden. Jede Gruppe wird als eine verbundene Liste von Rechentaskzeigern (,,pointers to compute tasks") verwaltet, die als Warteschlangenmetadaten (,,queue metadata") (QMD) kodiert und im Speicher gespeichert sind. Die QMD beinhalten den Zustand, der zum Ausführen eines Rechentasks benötigt wird. Wenn ein Task von dem Scheduling-Schaltkreis zur Ausführung ausgewählt worden ist, wird die QMD für eine Gruppe entfernt und in eine Tabelle von aktiven Rechentasks überführt. Rechentasks werden dann aus der Tabelle aktiver Tasks zur Ausführung durch einen Streaming-Mehrfachprozessor (,,streaming multiprocessor") ausgewähtl.
One embodiment of the present invention sets forth a technique for dynamically scheduling and managing compute tasks with different execution priority levels. The scheduling circuitry organizes the compute tasks into groups based on priority levels. The compute tasks may then be selected for execution using different scheduling schemes, such as round-robin, priority, and partitioned priority. Each group is maintained as a linked list of pointers to compute tasks that are encoded as queue metadata (QMD) stored in memory. A QMD encapsulates the state needed to execute a compute task. When a task is selected for execution by the scheduling circuitry, the QMD is removed for a group and transferred to a table of active compute tasks. Compute tasks are then selected from the active task table for execution by a streaming multiprocessor. |
---|