-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
中的所有选项