-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 lo sharding solo senza conflitti, mentre la strategia aggressiva risolve i conflitti. Una maggiore aggressività può ridurre l'utilizzo della memoria a scapito di potenziali comunicazioni.
Opzioni:
- Tutte le opzioni a partire da
BasicPropagationPass
-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 sharding op esistenti e create-module-dump-directory
: dove eseguire il dump dei moduli riscritti per il debugging-conservative-propagation
: se non consentire assi divisi e di partizionamento orizzontale non divisibili durante la propagazione ###-sdy-op-priority-propagate
Esegue l'algoritmo di propagazione della priorità dell'operatore.
Propaga gli sharding nelle iterazioni, in base a un insieme di euristiche. Ogni euristica determina se eseguire la propagazione in avanti, indietro o in entrambe le direzioni per una determinata operazione.
Questo valore inizia dalla priorità operativa 0 e aumenta fino a quando tutte le euristiche operative non sono esaurite e il programma non ha raggiunto un punto fisso.
Per una priorità p, tutte le strategie di ottimizzazione vengono prese in considerazione 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:
- Tutte le opzioni da
AggressivePropagationPass
-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 questa operazione viene eseguita tutta 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'iterazione i, 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:
- Tutte le opzioni da
OpPriorityPropagationPass