-sdy-aggressive-propagate

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

使用積極的因子傳播策略來傳播分割區。基本策略只會傳播沒有衝突的切割,而積極策略則會解決衝突。更積極的做法雖然可以減少記憶體占用空間,但可能會影響潛在的通訊。

選項:

  • -keep-sharding-rules:是否保留現有和已建立的作業分割規則。
  • -module-dump-directory:傾印任何重新撰寫的模組,以利偵錯。
  • -conservative-propagation:在傳播期間是否要禁止分割軸和不可分割的區分軸。
  • -debug-sharding-origins:是否要儲存 MLIR 模組分割作業來源的相關資訊。這些是函式輸入、輸出、區隔限制和手動運算的區隔,會在傳播前執行。
  • -debug-edge-source-sharding:是否要儲存 MLIR 模組分割作業的邊緣來源資訊。這些是運算元/結果在某些運算結果上引入了分割作業。
  • -propagation-strategy:要使用的因素傳播策略。

-sdy-basic-propagate

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

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

選項:

  • -keep-sharding-rules:是否保留現有和已建立的作業分割規則。
  • -module-dump-directory:傾印任何重新撰寫的模組,以利偵錯。
  • -conservative-propagation:在傳播期間是否要禁止分割軸和不可分割的區分軸。
  • -debug-sharding-origins:是否要儲存 MLIR 模組分割作業來源的相關資訊。這些是函式輸入、輸出、區隔限制和手動運算的區隔,會在傳播前執行。
  • -debug-edge-source-sharding:是否要儲存 MLIR 模組分割作業的邊緣來源資訊。這些是運算元/結果在某些運算結果上引入分割的情況。

-sdy-op-priority-propagate

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

根據一組運算法則,在迭代中傳播分割作業。每個啟發法的決定因素,是決定是否要針對特定運算在前向、後向或兩個方向傳播。

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

對於優先順序 p,所有 op 最佳化規則都會從 0 <= i < p 開始考量。系統會使用 BOTH > BACKWARD == FORWARD > NONE,為每個運算子選擇最具表達力的方向。如果在這個迴圈中,系統先看到 FORWARD/BACKWARD,再看到 BACKWARD/FORWARD,則方向為 BOTH

這項傳播策略會擴充積極傳播策略,也就是說,在每次 op-priority 迭代中,都會套用完整的積極傳播 (請參閱 AggressivePropagationPass)。

選項:

  • -keep-sharding-rules:是否保留現有和已建立的作業分割規則。
  • -module-dump-directory:傾印任何重新撰寫的模組,以利偵錯。
  • -conservative-propagation:在傳播期間是否要禁止分割軸和不可分割的區分軸。
  • -debug-sharding-origins:是否要儲存 MLIR 模組分割作業來源的相關資訊。這些是函式輸入、輸出、區隔限制和手動運算的區隔,會在傳播前執行。
  • -debug-edge-source-sharding:是否要儲存 MLIR 模組分割作業的邊緣來源資訊。這些是運算元/結果在某些運算結果上引入了分割作業。
  • -propagation-strategy:要使用的因素傳播策略。
  • -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)。

選項:

  • -keep-sharding-rules:是否保留現有和已建立的作業分割規則。
  • -module-dump-directory:傾印任何重新撰寫的模組,以利偵錯。
  • -conservative-propagation:在傳播期間是否要禁止分割軸和不可分割的區分軸。
  • -debug-sharding-origins:是否要儲存 MLIR 模組分割作業來源的相關資訊。這些是函式輸入、輸出、區隔限制和手動運算的區隔,會在傳播前執行。
  • -debug-edge-source-sharding:是否要儲存 MLIR 模組分割作業的邊緣來源資訊。這些是運算元/結果在某些運算結果上引入了分割作業。
  • -propagation-strategy:要使用的因素傳播策略。
  • -run-op-priority-propagation:是否執行 (或略過) 作業優先順序傳播。