-sdy-aggressive-propagate
Esegue l'algoritmo di propagazione del partizionamento aggressivo.
Propaga gli shard con una strategia di propagazione dei fattori aggressiva. La strategia di base propaga solo gli shard senza conflitti, mentre la strategia aggressiva risolve i conflitti. Un'aggressività maggiore può ridurre l'ingombro in memoria a scapito della potenziale comunicazione.
Opzioni:
-keep-sharding-rules
: indica se mantenere le regole di suddivisione delle operazioni esistenti e create.-module-dump-directory
: dove eseguire il dump di eventuali moduli riscritti per il debug.-conservative-propagation
: indica se non consentire gli assi suddivisi e gli assi di suddivisione non divisibile durante la propagazione.-debug-sharding-origins
: indica se salvare informazioni sull'origine di un shard nel modulo MLIR. Si tratta degli shard sugli input, sugli output, sui vincoli di suddivisione e sui calcoli manuali della funzione prima della propagazione.-debug-edge-source-sharding
: indica se salvare le informazioni sull'origine edge di uno sharding nel modulo MLIR. Questi sono gli operandi/risultati che hanno introdotto un frammentazione su alcuni risultati dell'operazione.-propagation-strategy
: la strategia di propagazione dei fattori da utilizzare.
-sdy-basic-propagate
Esegue l'algoritmo di base di propagazione del sharding.
L'algoritmo di propagazione di base è la strategia di propagazione più bassa nella gerarchia, che non risolve i conflitti, ma propaga gli assi compatibili tra tutti gli operandi e i risultati.
Opzioni:
-keep-sharding-rules
: indica se mantenere le regole di suddivisione delle operazioni esistenti e create.-module-dump-directory
: dove eseguire il dump di eventuali moduli riscritti per il debug.-conservative-propagation
: indica se non consentire gli assi suddivisi e gli assi di suddivisione non divisibile durante la propagazione.-debug-sharding-origins
: indica se salvare informazioni sull'origine di un shard nel modulo MLIR. Si tratta degli shard sugli input, sugli output, sui vincoli di suddivisione e sui calcoli manuali della funzione prima della propagazione.-debug-edge-source-sharding
: indica se salvare le informazioni sull'origine edge di uno sharding nel modulo MLIR. Questi sono gli operandi/risultati che hanno introdotto un frammentazione su alcuni risultati dell'operazione.
-sdy-op-priority-propagate
Esegue l'algoritmo di propagazione della priorità dell'operatore.
Propaga gli shard nelle iterazioni in base a un insieme di euristiche di operazioni. Ogni euristica determina se eseguire la propagazione in avanti, indietro o in entrambe le direzioni per una determinata op.
Questo valore inizia da op-priority 0 e aumenta finché non sono state esaurite tutte le strategie di ricerca di operazioni e il programma non ha raggiunto un punto fisso.
Per una priorità p, vengono prese in considerazione tutte le strategie di ottimizzazione da 0 <= i < p. Per ogni operazione viene scelta la direzione più espressiva con BOTH > BACKWARD == FORWARD > NONE
. Se durante questa iterazione viene visualizzato prima FORWARD
/BACKWARD
e poi BACKWARD
/FORWARD
, la direzione è BOTH
.
Questa strategia di propagazione estende la strategia di propagazione aggressiva, il che significa che a ogni iterazione dell'operatore di priorità viene applicata una propagazione aggressiva completa (vedi AggressivePropagationPass
).
Opzioni:
-keep-sharding-rules
: indica se mantenere le regole di suddivisione delle operazioni esistenti e create.-module-dump-directory
: dove eseguire il dump di eventuali moduli riscritti per il debug.-conservative-propagation
: indica se non consentire gli assi suddivisi e gli assi di suddivisione non divisibile durante la propagazione.-debug-sharding-origins
: indica se salvare informazioni sull'origine di un shard nel modulo MLIR. Si tratta degli shard sugli input, sugli output, sui vincoli di suddivisione e sui calcoli manuali della funzione prima della propagazione.-debug-edge-source-sharding
: indica se salvare le informazioni sull'origine edge di uno sharding nel modulo MLIR. Questi sono gli operandi/risultati che hanno introdotto un frammentazione su alcuni risultati dell'operazione.-propagation-strategy
: la strategia di propagazione dei fattori da utilizzare.-run-op-priority-propagation
: indica se eseguire (o saltare) la propagazione della priorità op.
-sdy-populate-op-sharding-rules
Compila tutte le operazioni registrate con un OpShardingRuleAttr
.
Compila tutte le operazioni registrate con un OpShardingRuleAttr
, che viene utilizzato per il debugging/test delle regole di sharding registrate. La propagazione esegue già questa operazione just-in-time, ma questo passaggio lo fa tutto in una volta.
Opzioni
-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes
-sdy-user-priority-propagate
Esegue l'algoritmo di propagazione della priorità utente.
Propaga gli shard nelle iterazioni, partendo dalla priorità più elevata (numero più basso, in genere p0) alla priorità più bassa (numero più alto). In altre parole, all'i-esima iterazione vengono propagati solo gli shard delle dimensioni con priorità <=i.
Questa strategia di propagazione estende la strategia di propagazione della priorità dell'operatore,
il che significa che a ogni iterazione della priorità dell'utente viene applicata una propagazione completa della priorità dell'operatore (vedi OpPriorityPropagationPass
).
Opzioni:
-keep-sharding-rules
: indica se mantenere le regole di suddivisione delle operazioni esistenti e create.-module-dump-directory
: dove eseguire il dump di eventuali moduli riscritti per il debug.-conservative-propagation
: indica se non consentire gli assi suddivisi e gli assi di suddivisione non divisibile durante la propagazione.-debug-sharding-origins
: indica se salvare informazioni sull'origine di un shard nel modulo MLIR. Si tratta degli shard sugli input, sugli output, sui vincoli di suddivisione e sui calcoli manuali della funzione prima della propagazione.-debug-edge-source-sharding
: indica se salvare le informazioni sull'origine edge di uno sharding nel modulo MLIR. Questi sono gli operandi/risultati che hanno introdotto un frammentazione su alcuni risultati dell'operazione.-propagation-strategy
: la strategia di propagazione dei fattori da utilizzare.-run-op-priority-propagation
: indica se eseguire (o saltare) la propagazione della priorità op.