-sdy-aggressive-propagate

執行積極的分割區傳播演算法。

採用積極的因式傳播策略來傳播資料分割。基本策略只會傳播沒有衝突的區塊,而積極策略則會解決衝突。設定較高的積極度雖然可減少記憶體占用空間,但可能會影響潛在的通訊。

選項:

  • BasicPropagationPass 的所有選項
  • -propagation-strategy:要使用的因素傳播策略 ### -sdy-basic-propagate

執行基本區塊處理傳播演算法。

基本傳播演算法是階層中最低層級的傳播策略,不會進行任何衝突解決,而是傳播所有運算元與結果之間相容的軸。

選項:

  • -keep-sharding-rules:是否要保留現有及建立運算資料分割規則
  • -module-dump-directory:在哪裡轉儲任何重寫的模組以便偵錯
  • -conservative-propagation:在傳播期間是否禁止分割軸和不可分割的分割軸 ### -sdy-op-priority-propagate

執行 op 優先順序傳播演算法。

根據一組運算經驗法則,在疊代中傳播資料分割。每個經驗法則會決定是否對指定運算的向前、向後或雙向傳播。

這項作業會從作業優先順序 0 開始,並且會一直增加,直到所有作業推論法都用盡,且程式已達到固定點為止。

對於優先順序 p,所有 op 最佳化規則都會從 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 的維度分割作業會傳播。

這項傳播策略會擴充 op-priority 傳播策略,也就是說,在每次使用者優先順序迭代時,都會套用完整的 op-priority 傳播 (請參閱 OpPriorityPropagationPass)。

選項:

  • OpPriorityPropagationPass起的所有選項