-sdy-aggressive-propagate
Executa o algoritmo agressivo de propagação de fragmentação.
Propague divisões com uma estratégia agressiva de propagação de fatores. A estratégia básica só propaga particionamentos sem conflitos, enquanto a estratégia agressiva resolve conflitos. Uma maior agressividade pode reduzir o consumo de memória em detrimento da comunicação potencial.
Opções:
-keep-sharding-rules
: se as regras de fragmentação de operações atuais e criadas vão ser mantidas.-module-dump-directory
: onde despejar os módulos reescritos para depuração.-conservative-propagation
: se é possível impedir eixos divididos e eixos de divisão não divisíveis durante a propagação.-debug-sharding-origins
: se é necessário salvar informações sobre a origem de um fragmento no módulo MLIR. Esses são os particionamentos nas entradas, saídas, restrições de particionamento e cálculos manuais da função antes da propagação.-debug-edge-source-sharding
: se é necessário salvar informações sobre a origem de borda de um fragmentação no módulo MLIR. Esses são os operandos/resultados que introduziram um fragmentação em alguns resultados de operação.-propagation-strategy
: qual estratégia de propagação de fatores usar.
-sdy-basic-propagate
Executa o algoritmo básico de propagação de fragmentação.
O algoritmo de propagação básico é a estratégia de propagação mais baixa na hierarquia, que não faz nenhuma resolução de conflito e, em vez disso, propaga eixos compatíveis entre todos os operandos e resultados.
Opções:
-keep-sharding-rules
: se as regras de fragmentação de operações atuais e criadas vão ser mantidas.-module-dump-directory
: onde despejar os módulos reescritos para depuração.-conservative-propagation
: se é possível impedir eixos divididos e eixos de divisão não divisíveis durante a propagação.-debug-sharding-origins
: se é necessário salvar informações sobre a origem de um fragmento no módulo MLIR. Esses são os particionamentos nas entradas, saídas, restrições de particionamento e cálculos manuais da função antes da propagação.-debug-edge-source-sharding
: se é necessário salvar informações sobre a origem de borda de um fragmentação no módulo MLIR. Esses são os operandos/resultados que introduziram um fragmentação em alguns resultados de operação.
-sdy-op-priority-propagate
Executa o algoritmo de propagação de prioridade de operação.
Propague shardings em iterações com base em um conjunto de heurísticas de operação. Cada heurística determina se a propagação será para frente, para trás ou para as duas direções de uma determinada operação.
Ela começa na prioridade de operação 0 e aumenta até que todas as heurísticas de operação sejam esgotadas e o programa atinja um ponto fixo.
Para uma prioridade p, todas as heurísticas de operação são consideradas de 0 <= i < p. A direção mais
expressiva é escolhida para cada operação, com
BOTH > BACKWARD == FORWARD > NONE
. Se durante essa iteração,
FORWARD
/BACKWARD
for encontrado primeiro e depois BACKWARD
/FORWARD
, a
direção será BOTH
.
Essa estratégia de propagação estende a estratégia de propagação agressiva, o que
significa que, em cada iteração de prioridade de operação, uma propagação agressiva completa é
aplicada (consulte AggressivePropagationPass
).
Opções:
-keep-sharding-rules
: se as regras de fragmentação de operações atuais e criadas vão ser mantidas.-module-dump-directory
: onde despejar os módulos reescritos para depuração.-conservative-propagation
: se é possível impedir eixos divididos e eixos de divisão não divisíveis durante a propagação.-debug-sharding-origins
: se é necessário salvar informações sobre a origem de um fragmento no módulo MLIR. Esses são os particionamentos nas entradas, saídas, restrições de particionamento e cálculos manuais da função antes da propagação.-debug-edge-source-sharding
: se é necessário salvar informações sobre a origem de borda de um fragmentação no módulo MLIR. Esses são os operandos/resultados que introduziram um fragmentação em alguns resultados de operação.-propagation-strategy
: qual estratégia de propagação de fatores usar.-run-op-priority-propagation
: se a propagação de prioridade de operação vai ser executada (ou ignorada).
-sdy-populate-op-sharding-rules
Preenche todas as operações registradas com um OpShardingRuleAttr
.
Preenche todas as operações registradas com um OpShardingRuleAttr
, que é usado para
depurar/testar as regras de fragmentação registradas. A propagação já faz
isso no momento certo, mas esse cartão faz tudo de uma vez.
Opções
-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes
-sdy-user-priority-propagate
Executa o algoritmo de propagação de prioridade do usuário.
Propague as partições em iterações, começando pela prioridade mais alta (número mais baixo, normalmente p0) até a prioridade mais baixa (número mais alto). Em outras palavras, na iteração i, apenas os shardings de dimensão com prioridade <=i são propagados.
Essa estratégia de propagação estende a estratégia de propagação de prioridade de operação,
o que significa que, em cada iteração de prioridade do usuário, uma propagação de prioridade de
operação completa é aplicada (consulte OpPriorityPropagationPass
).
Opções:
-keep-sharding-rules
: se as regras de fragmentação de operações atuais e criadas vão ser mantidas.-module-dump-directory
: onde despejar os módulos reescritos para depuração.-conservative-propagation
: se é possível impedir eixos divididos e eixos de divisão não divisíveis durante a propagação.-debug-sharding-origins
: se é necessário salvar informações sobre a origem de um fragmento no módulo MLIR. Esses são os particionamentos nas entradas, saídas, restrições de particionamento e cálculos manuais da função antes da propagação.-debug-edge-source-sharding
: se é necessário salvar informações sobre a origem de borda de um fragmentação no módulo MLIR. Esses são os operandos/resultados que introduziram um fragmentação em alguns resultados de operação.-propagation-strategy
: qual estratégia de propagação de fatores usar.-run-op-priority-propagation
: se a propagação de prioridade de operação vai ser executada (ou ignorada).