-sdy-aggressive-propagate

运行激进分片传播算法。

使用激进的因子传播策略传播分片。基本策略仅会传播没有冲突的分片,而激进策略会解决冲突。更高的侵略性可以降低内存占用量,但会导致潜在的通信开销。

选项:

  • BasicPropagationPass 中的所有选项
  • -propagation-strategy:要使用的因子传播策略 ### -sdy-basic-propagate

运行基本分片传播算法。

基本传播算法是层次结构中最低级的传播策略,不会执行任何冲突解决,而是传播所有运算数和结果之间兼容的轴。

选项:

  • -keep-sharding-rules:是否保留现有和创建的操作分片规则
  • -module-dump-directory:用于转储所有重写的模块以进行调试的位置
  • -conservative-propagation:是否在传播期间禁止分屏轴和不可分割的分片轴 ### -sdy-op-priority-propagate

运行操作优先级传播算法。

根据一组操作启发法,在迭代中传播分片。每个启发词语都会确定是否要针对给定运算在前向、后向或两个方向传播。

此值从操作优先级 0 开始,会一直增加,直到所有操作启发词语都用尽且程序达到固定点。

对于优先级 p,所有操作启发词语均在 0 <= i < p 的范围内。系统会使用 BOTH > BACKWARD == FORWARD > NONE 为每个操作选择最具表现力的方向。如果在迭代期间先看到 FORWARD/BACKWARD,然后看到 BACKWARD/FORWARD,则方向为 BOTH

此传播策略扩展了激进传播策略,这意味着在每次操作优先级迭代中,都会应用完全激进传播(请参阅 AggressivePropagationPass)。

选项:

  • AggressivePropagationPass 中的所有选项
  • -run-op-priority-propagation:是运行(还是跳过)操作优先级传播 ### -sdy-populate-op-sharding-rules

使用 OpShardingRuleAttr 填充所有已注册的操作。

使用 OpShardingRuleAttr 填充所有已注册的操作,用于调试/测试已注册的分片规则。传播已经按需执行此操作,但此传递会一次性执行此操作。

选项

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

-sdy-user-priority-propagate

运行用户优先级传播算法。

在迭代中传播分片,从最高优先级(最低数字,通常为 p0)开始,到最低优先级(最高数字)结束。换句话说,在第 i 次迭代时,仅传播优先级小于或等于 i 的维度分片。

此传播策略扩展了操作优先级传播策略,这意味着在每次用户优先级迭代中,都会应用完整的操作优先级传播(请参阅 OpPriorityPropagationPass)。

选项:

  • OpPriorityPropagationPass 中的所有选项