-sdy-aggressive-propagate

Ejecuta el algoritmo de propagación de fragmentación agresiva.

Propaga los particionados con una estrategia de propagación de factores agresiva. La estrategia básica solo propaga particiones sin conflictos, mientras que la estrategia agresiva resuelve los conflictos. Una mayor agresividad puede reducir el uso de memoria a costa de una posible comunicación.

Opciones:

  • -keep-sharding-rules: Indica si se deben conservar las reglas de fragmentación de operaciones existentes y creadas.
  • -module-dump-directory: Es el lugar donde se volcarán los módulos reescritos para la depuración.
  • -conservative-propagation: Indica si se deben inhabilitar los ejes divididos y los ejes de fragmentación no divisibles durante la propagación.
  • -debug-sharding-origins: Indica si se debe guardar información sobre el origen de un fragmento en el módulo MLIR. Estos serían los particionados en las entradas, salidas, restricciones de particionado y cálculos manuales de la función antes de la propagación.
  • -debug-edge-source-sharding: Indica si se debe guardar información sobre la fuente de borde de un fragmento en el módulo MLIR. Estos son los operandos o resultados que introdujeron un fragmento en algún resultado de la operación.
  • -propagation-strategy: Qué estrategia de propagación de factores usar.

-sdy-basic-propagate

Ejecuta el algoritmo básico de propagación de fragmentación.

El algoritmo de propagación básico es la estrategia de propagación más baja en la jerarquía, que no resuelve ningún conflicto y, en su lugar, propaga ejes que son compatibles entre todos los operandos y resultados.

Opciones:

  • -keep-sharding-rules: Indica si se deben conservar las reglas de fragmentación de operaciones existentes y creadas.
  • -module-dump-directory: Es el lugar donde se volcarán los módulos reescritos para la depuración.
  • -conservative-propagation: Indica si se deben inhabilitar los ejes divididos y los ejes de fragmentación no divisibles durante la propagación.
  • -debug-sharding-origins: Indica si se debe guardar información sobre el origen de un fragmento en el módulo MLIR. Estos serían los particionados en las entradas, salidas, restricciones de particionado y cálculos manuales de la función antes de la propagación.
  • -debug-edge-source-sharding: Indica si se debe guardar información sobre la fuente de borde de un fragmento en el módulo MLIR. Estos son los operandos o resultados que introdujeron un fragmento en algún resultado de la operación.

-sdy-op-priority-propagate

Ejecuta el algoritmo de propagación de prioridad de operación.

Propaga los particionamientos en iteraciones, según un conjunto de heurísticas de operaciones. Cada heurística determina si se debe propagar en las direcciones hacia adelante, hacia atrás o en ambas para una operación determinada.

Comienza en la prioridad de operación 0 y aumenta hasta que se agotan todas las heurísticas de operación y el programa alcanza un punto fijo.

Para una prioridad p, todas las heurísticas de op se consideran de 0 ≤ i < p. Se elige la dirección más expresiva para cada operación, con BOTH > BACKWARD == FORWARD > NONE. Si durante esta iteración, primero se ve FORWARD/BACKWARD y, luego, BACKWARD/FORWARD, la dirección es BOTH.

Esta estrategia de propagación extiende la estrategia de propagación agresiva, lo que significa que, en cada iteración de prioridad de operación, se aplica una propagación agresiva completa (consulta AggressivePropagationPass).

Opciones:

  • -keep-sharding-rules: Indica si se deben conservar las reglas de fragmentación de operaciones existentes y creadas.
  • -module-dump-directory: Es el lugar donde se volcarán los módulos reescritos para la depuración.
  • -conservative-propagation: Indica si se deben inhabilitar los ejes divididos y los ejes de fragmentación no divisibles durante la propagación.
  • -debug-sharding-origins: Indica si se debe guardar información sobre el origen de un fragmento en el módulo MLIR. Estos serían los particionados en las entradas, salidas, restricciones de particionado y cálculos manuales de la función antes de la propagación.
  • -debug-edge-source-sharding: Indica si se debe guardar información sobre la fuente de borde de un fragmento en el módulo MLIR. Estos son los operandos o resultados que introdujeron un fragmento en algún resultado de la operación.
  • -propagation-strategy: Qué estrategia de propagación de factores usar.
  • -run-op-priority-propagation: Indica si se debe ejecutar (o omitir) la propagación de prioridad de operación.

-sdy-populate-op-sharding-rules

Propaga todas las operaciones registradas con un OpShardingRuleAttr.

Completa todas las operaciones registradas con un OpShardingRuleAttr, que se usa para depurar o probar las reglas de fragmentación registradas. La propagación ya lo hace justo a tiempo, pero este pase lo hace todo a la vez.

Opciones

-conservative-propagation : whether to disllow rules that can propagate non-divisible sharding axes

-sdy-user-priority-propagate

Ejecuta el algoritmo de propagación de prioridad del usuario.

Propaga los particionamientos en iteraciones, desde la prioridad más alta (número más bajo, normalmente p0) hasta la prioridad más baja (número más alto). En otras palabras, en la iteración i, solo se propagan los particionados de dimensiones con prioridad <=i.

Esta estrategia de propagación extiende la estrategia de propagación de prioridad de operación, lo que significa que, en cada iteración de prioridad del usuario, se aplica una propagación completa de prioridad de operación (consulta OpPriorityPropagationPass).

Opciones:

  • -keep-sharding-rules: Indica si se deben conservar las reglas de fragmentación de operaciones existentes y creadas.
  • -module-dump-directory: Es el lugar donde se volcarán los módulos reescritos para la depuración.
  • -conservative-propagation: Indica si se deben inhabilitar los ejes divididos y los ejes de fragmentación no divisibles durante la propagación.
  • -debug-sharding-origins: Indica si se debe guardar información sobre el origen de un fragmento en el módulo MLIR. Estos serían los particionados en las entradas, salidas, restricciones de particionado y cálculos manuales de la función antes de la propagación.
  • -debug-edge-source-sharding: Indica si se debe guardar información sobre la fuente de borde de un fragmento en el módulo MLIR. Estos son los operandos o resultados que introdujeron un fragmento en algún resultado de la operación.
  • -propagation-strategy: Qué estrategia de propagación de factores usar.
  • -run-op-priority-propagation: Indica si se debe ejecutar (o omitir) la propagación de prioridad de operación.