-sdy-aggressive-propagate

積極的なシャーディング伝播アルゴリズムを実行します。

積極的なファクタ伝播戦略でシャーディングを伝播します。基本戦略では、競合のないシャーディングのみが伝播されますが、積極的な戦略では競合が解決されます。アグレッシブさを高めると、通信の可能性を犠牲にしてメモリ フットプリントを削減できます。

オプション:

  • BasicPropagationPass のすべてのオプション
  • -propagation-strategy : 使用するファクタ伝播戦略 ### -sdy-basic-propagate

基本的なシャーディング伝播アルゴリズムを実行します。

基本的な伝播アルゴリズムは、階層内で最も低い伝播戦略です。競合解決は行わず、すべてのオペランドと結果で互換性のある軸を伝播します。

オプション:

  • -keep-sharding-rules : 既存の op シャーディング ルールと作成された op シャーディング ルールを保持するかどうか
  • -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 : op 優先度の伝播を実行するかどうか(またはスキップするかどうか) ### -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 のすべてのオプション