-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).