-sdy-aggressive-propagate
Führt den aggressiven Algorithmus zur Sharding-Ausbreitung aus.
Verwenden Sie eine aggressive Faktorweitergabestrategie, um Shardings zu übertragen. Bei der grundlegenden Strategie werden nur Shardings ohne Konflikte weitergegeben, während bei der aggressiven Strategie Konflikte gelöst werden. Eine höhere Aggressivität kann den Arbeitsspeicherbedarf reduzieren, was jedoch zu einer schlechteren Kommunikation führen kann.
Optionen:
-keep-sharding-rules
: Gibt an, ob vorhandene und erstellte Regeln für die Sharding-Verteilung von Vorgängen beibehalten werden sollen.-module-dump-directory
: Speicherort, an dem neu geschriebene Module zum Debuggen abgelegt werden sollen.-conservative-propagation
: Gibt an, ob bei der Replikation keine geteilten Achsen und nicht teilbaren Chunk-Achsen zulässig sind.-debug-sharding-origins
: Gibt an, ob Informationen zum Ursprung einer Sharding im MLIR-Modul gespeichert werden sollen. Dazu gehören die Shardings für die Funktionseingaben, ‑ausgaben, ‑einschränkungen und manuellen Berechnungen vor der Weiterleitung.-debug-edge-source-sharding
: Gibt an, ob Informationen zur Edge-Quelle einer Sharding im MLIR-Modul gespeichert werden sollen. Dies sind die Operanden/Ergebnisse, die für ein bestimmtes Ergebnis der Operation eine Sharding-Funktion eingeführt haben.-propagation-strategy
: Welche Faktorweitergabestrategie verwendet werden soll.
-sdy-basic-propagate
Führt den grundlegenden Algorithmus zur Sharding-Weitergabe aus.
Der grundlegende Propagationsalgorithmus ist die niedrigste Propagationsstrategie in der Hierarchie. Er führt keine Konfliktlösung durch, sondern überträgt Achsen, die mit allen Operanden und Ergebnissen kompatibel sind.
Optionen:
-keep-sharding-rules
: Gibt an, ob vorhandene und erstellte Regeln für die Sharding-Verteilung von Vorgängen beibehalten werden sollen.-module-dump-directory
: Speicherort, an dem neu geschriebene Module zum Debuggen abgelegt werden sollen.-conservative-propagation
: Gibt an, ob bei der Replikation keine geteilten Achsen und nicht teilbaren Chunk-Achsen zulässig sind.-debug-sharding-origins
: Gibt an, ob Informationen zum Ursprung einer Sharding im MLIR-Modul gespeichert werden sollen. Dazu gehören die Shardings für die Funktionseingaben, ‑ausgaben, ‑einschränkungen und manuellen Berechnungen vor der Weiterleitung.-debug-edge-source-sharding
: Gibt an, ob Informationen zur Edge-Quelle einer Sharding im MLIR-Modul gespeichert werden sollen. Dies sind die Operanden/Ergebnisse, die für ein bestimmtes Ergebnis der Operation eine Sharding-Funktion eingeführt haben.
-sdy-op-priority-propagate
Führt den Algorithmus zur Prioritätsweitergabe aus.
Überträgt Shardings in Iterationen basierend auf einer Reihe von Heuristiken für Operationen. Mit jeder Heuristik wird festgelegt, ob die Änderungen für eine bestimmte Operation vorwärts, rückwärts oder in beide Richtungen fortgesetzt werden sollen.
Dieser beginnt bei der OP-Priorität 0 und erhöht sich, bis alle OP-Heuristiken ausgeschöpft sind und das Programm einen Fixpunkt erreicht hat.
Für eine Priorität p werden alle Heuristiken für die Ausführung berücksichtigt, für die 0 <= i < p gilt. Für jede Operation wird die ausdrucksstärkste Richtung mit BOTH > BACKWARD == FORWARD > NONE
ausgewählt. Wenn bei dieser Iteration zuerst FORWARD
/BACKWARD
und dann BACKWARD
/FORWARD
erkannt wird, ist die Richtung BOTH
.
Diese Strategie erweitert die aggressive Weiterleitungsstrategie. Das bedeutet, dass bei jeder Iteration mit Betriebspriorität eine vollständige aggressive Weiterleitung angewendet wird (siehe AggressivePropagationPass
).
Optionen:
-keep-sharding-rules
: Gibt an, ob vorhandene und erstellte Regeln für die Sharding-Verteilung von Vorgängen beibehalten werden sollen.-module-dump-directory
: Speicherort, an dem neu geschriebene Module zum Debuggen abgelegt werden sollen.-conservative-propagation
: Gibt an, ob bei der Replikation keine geteilten Achsen und nicht teilbaren Chunk-Achsen zulässig sind.-debug-sharding-origins
: Gibt an, ob Informationen zum Ursprung einer Sharding im MLIR-Modul gespeichert werden sollen. Dazu gehören die Shardings für die Funktionseingaben, ‑ausgaben, ‑einschränkungen und manuellen Berechnungen vor der Weiterleitung.-debug-edge-source-sharding
: Gibt an, ob Informationen zur Edge-Quelle einer Sharding im MLIR-Modul gespeichert werden sollen. Dies sind die Operanden/Ergebnisse, die für ein bestimmtes Ergebnis der Operation eine Sharding-Funktion eingeführt haben.-propagation-strategy
: Welche Faktorweitergabestrategie verwendet werden soll.-run-op-priority-propagation
: Gibt an, ob die Weiterleitung mit Betriebspriorität ausgeführt (oder übersprungen) werden soll.
-sdy-populate-op-sharding-rules
Alle registrierten Vorgänge werden mit einem OpShardingRuleAttr
ausgefüllt.
Alle registrierten Vorgänge werden mit einem OpShardingRuleAttr
ausgefüllt, das zum Debuggen und Testen der registrierten Sharding-Regeln verwendet wird. Bei der Weiterleitung wird dies bereits „Just-in-Time“ durchgeführt, aber mit diesem Ausweis geschieht dies alles auf einmal.
Optionen
-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes
-sdy-user-priority-propagate
Führt den Algorithmus zur Nutzerprioritätsweitergabe aus.
Es werden Shardings in Iterationen weitergegeben, beginnend mit der höchsten Priorität (niedrigste Zahl, normalerweise p0) bis zur niedrigsten Priorität (höchste Zahl). Mit anderen Worten: Bei der i-ten Iteration werden nur Dimensions-Shardings mit einer Priorität von <=i weitergegeben.
Diese Weiterleitungsstrategie erweitert die Weiterleitungsstrategie für die Betriebspriorität. Das bedeutet, dass bei jeder Iteration mit Nutzerpriorität eine vollständige Weiterleitung mit Betriebspriorität angewendet wird (siehe OpPriorityPropagationPass
).
Optionen:
-keep-sharding-rules
: Gibt an, ob vorhandene und erstellte Regeln für die Sharding-Verteilung von Vorgängen beibehalten werden sollen.-module-dump-directory
: Speicherort, an dem neu geschriebene Module zum Debuggen abgelegt werden sollen.-conservative-propagation
: Gibt an, ob bei der Replikation keine geteilten Achsen und nicht teilbaren Chunk-Achsen zulässig sind.-debug-sharding-origins
: Gibt an, ob Informationen zum Ursprung einer Sharding im MLIR-Modul gespeichert werden sollen. Dazu gehören die Shardings für die Funktionseingaben, ‑ausgaben, ‑einschränkungen und manuellen Berechnungen vor der Weiterleitung.-debug-edge-source-sharding
: Gibt an, ob Informationen zur Edge-Quelle einer Sharding im MLIR-Modul gespeichert werden sollen. Dies sind die Operanden/Ergebnisse, die für ein bestimmtes Ergebnis der Operation eine Sharding-Funktion eingeführt haben.-propagation-strategy
: Welche Faktorweitergabestrategie verwendet werden soll.-run-op-priority-propagation
: Gibt an, ob die Weiterleitung mit Betriebspriorität ausgeführt (oder übersprungen) werden soll.