-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

الگوریتم انتشار اولویت اول را اجرا می کند.

بر اساس مجموعه ای از اکتشافی های عملیاتی، تکه تکه ها را در تکرارها منتشر می کند. هر اکتشافی تعیین می کند که برای یک عملیات معین در جهت جلو، عقب یا هر دو جهت منتشر شود.

این از اولویت صفر شروع می شود و تا زمانی که تمام اکتشافی های عملیاتی تمام شود و برنامه به نقطه ثابتی برسد افزایش می یابد.

برای اولویت p، تمام اکتشافی های عملیاتی از 0 <= i < p در نظر گرفته می شوند. گویاترین جهت برای هر عملیات انتخاب می شود، با BOTH > BACKWARD == FORWARD > NONE . اگر در طول این تکرار، ابتدا FORWARD / BACKWARD و سپس BACKWARD / FORWARD دیده می شود، جهت BOTH است.

این استراتژی انتشار، استراتژی انتشار تهاجمی را گسترش می دهد، به این معنی که در هر تکرار اولویت اول، یک انتشار تهاجمی کامل اعمال می شود (به 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 پر می کند، که برای اشکال زدایی/آزمایش قوانین اشتراک گذاری ثبت شده استفاده می شود. Propagation قبلاً این کار را به موقع انجام می دهد، اما این پاس همه آن را یکباره انجام می دهد.

گزینه ها

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

-sdy-user-priority-propagate

الگوریتم انتشار با اولویت کاربر را اجرا می کند.

تکه تکه ها را در تکرارها، از بالاترین اولویت (کمترین عدد، معمولاً p0) تا کمترین اولویت (بالاترین عدد) منتشر می کند. به عبارت دیگر، در تکرار i-ام، فقط تقسیم‌بندی ابعاد با اولویت <=i منتشر می‌شود.

این استراتژی انتشار، استراتژی انتشار اولویت را گسترش می دهد، به این معنی که در هر تکرار با اولویت کاربر، یک انتشار با اولویت کامل اعمال می شود (به OpPriorityPropagationPass مراجعه کنید).

گزینه ها:

  • -keep-sharding-rules : آیا باید قوانین موجود و ایجاد شده را حفظ کرد.
  • -module-dump-directory : جایی که ماژول های بازنویسی شده را برای اشکال زدایی تخلیه کنید.
  • -conservative-propagation : آیا نمی توان محورهای تقسیم شده و محورهای تقسیم ناپذیر را در طول انتشار مجاز دانست.
  • -debug-sharding-origins : آیا باید اطلاعات مربوط به منشأ یک اشتراک گذاری را در ماژول MLIR ذخیره کرد یا خیر. اینها تقسیم‌بندی‌ها در ورودی‌ها، خروجی‌های تابع، محدودیت‌های تقسیم‌بندی و محاسبات دستی قبل از انتشار خواهند بود.
  • -debug-edge-source-sharding : آیا باید اطلاعات مربوط به منبع لبه یک اشتراک گذاری در ماژول MLIR ذخیره شود. اینها همان چیزی است که عملوند/نتیجه یک تقسیم بندی در برخی از نتایج عملیات را معرفی کرد.
  • -propagation-strategy : استراتژی انتشار از کدام عامل استفاده شود.
  • -run-op-priority-propagation : آیا برای اجرای (یا رد شدن) انتشار اولویت اول.
،

-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

الگوریتم انتشار اولویت اول را اجرا می کند.

بر اساس مجموعه ای از اکتشافی های عملیاتی، تکه تکه ها را در تکرارها منتشر می کند. هر اکتشافی تعیین می کند که برای یک عملیات معین در جهت جلو، عقب یا هر دو جهت منتشر شود.

این از اولویت صفر شروع می شود و تا زمانی که تمام اکتشافی های عملیاتی تمام شود و برنامه به نقطه ثابتی برسد افزایش می یابد.

برای اولویت p، تمام اکتشافی های عملیاتی از 0 <= i < p در نظر گرفته می شوند. گویاترین جهت برای هر عملیات انتخاب می شود، با BOTH > BACKWARD == FORWARD > NONE . اگر در طول این تکرار، ابتدا FORWARD / BACKWARD و سپس BACKWARD / FORWARD دیده می شود، جهت BOTH است.

این استراتژی انتشار، استراتژی انتشار تهاجمی را گسترش می دهد، به این معنی که در هر تکرار اولویت اول، یک انتشار تهاجمی کامل اعمال می شود (به 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 پر می کند، که برای اشکال زدایی/آزمایش قوانین اشتراک گذاری ثبت شده استفاده می شود. Propagation قبلاً این کار را به موقع انجام می دهد، اما این پاس همه آن را یکباره انجام می دهد.

گزینه ها

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

-sdy-user-priority-propagate

الگوریتم انتشار با اولویت کاربر را اجرا می کند.

تکه تکه ها را در تکرارها، از بالاترین اولویت (کمترین عدد، معمولاً p0) تا کمترین اولویت (بالاترین عدد) منتشر می کند. به عبارت دیگر، در تکرار i-ام، فقط تقسیم‌بندی ابعاد با اولویت <=i منتشر می‌شود.

این استراتژی انتشار، استراتژی انتشار اولویت را گسترش می دهد، به این معنی که در هر تکرار با اولویت کاربر، یک انتشار با اولویت کامل اعمال می شود (به OpPriorityPropagationPass مراجعه کنید).

گزینه ها:

  • -keep-sharding-rules : آیا باید قوانین موجود و ایجاد شده را حفظ کرد.
  • -module-dump-directory : جایی که ماژول های بازنویسی شده را برای اشکال زدایی تخلیه کنید.
  • -conservative-propagation : آیا نمی توان محورهای تقسیم شده و محورهای تقسیم ناپذیر را در طول انتشار مجاز دانست.
  • -debug-sharding-origins : آیا باید اطلاعات مربوط به منشأ یک اشتراک گذاری را در ماژول MLIR ذخیره کرد یا خیر. اینها تقسیم‌بندی‌ها در ورودی‌ها، خروجی‌های تابع، محدودیت‌های تقسیم‌بندی و محاسبات دستی قبل از انتشار خواهند بود.
  • -debug-edge-source-sharding : آیا باید اطلاعات مربوط به منبع لبه یک اشتراک گذاری در ماژول MLIR ذخیره شود. اینها همان چیزی است که عملوند/نتیجه یک تقسیم بندی در برخی از نتایج عملیات را معرفی کرد.
  • -propagation-strategy : استراتژی انتشار از کدام عامل استفاده شود.
  • -run-op-priority-propagation : آیا برای اجرای (یا رد شدن) انتشار اولویت اول.
،

-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

الگوریتم انتشار اولویت اول را اجرا می کند.

بر اساس مجموعه ای از اکتشافی های عملیاتی، تکه تکه ها را در تکرارها منتشر می کند. هر اکتشافی تعیین می کند که برای یک عملیات معین در جهت جلو، عقب یا هر دو جهت منتشر شود.

این از اولویت صفر شروع می شود و تا زمانی که تمام اکتشافی های عملیاتی تمام شود و برنامه به نقطه ثابتی برسد افزایش می یابد.

برای اولویت p، تمام اکتشافی های عملیاتی از 0 <= i < p در نظر گرفته می شوند. گویاترین جهت برای هر عملیات انتخاب می شود، با BOTH > BACKWARD == FORWARD > NONE . اگر در طول این تکرار، ابتدا FORWARD / BACKWARD و سپس BACKWARD / FORWARD دیده می شود، جهت BOTH است.

این استراتژی انتشار، استراتژی انتشار تهاجمی را گسترش می دهد، به این معنی که در هر تکرار اولویت اول، یک انتشار تهاجمی کامل اعمال می شود (به 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 پر می کند، که برای اشکال زدایی/آزمایش قوانین اشتراک گذاری ثبت شده استفاده می شود. Propagation قبلاً این کار را به موقع انجام می دهد، اما این پاس همه آن را یکباره انجام می دهد.

گزینه ها

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

-sdy-user-priority-propagate

الگوریتم انتشار با اولویت کاربر را اجرا می کند.

تکه تکه ها را در تکرارها، از بالاترین اولویت (کمترین عدد، معمولاً p0) تا کمترین اولویت (بالاترین عدد) منتشر می کند. به عبارت دیگر، در تکرار i-ام، فقط تقسیم‌بندی ابعاد با اولویت <=i منتشر می‌شود.

این استراتژی انتشار، استراتژی انتشار اولویت را گسترش می دهد، به این معنی که در هر تکرار با اولویت کاربر، یک انتشار با اولویت کامل اعمال می شود (به OpPriorityPropagationPass مراجعه کنید).

گزینه ها:

  • -keep-sharding-rules : آیا باید قوانین موجود و ایجاد شده را حفظ کرد.
  • -module-dump-directory : جایی که ماژول های بازنویسی شده را برای اشکال زدایی تخلیه کنید.
  • -conservative-propagation : آیا نمی توان محورهای تقسیم شده و محورهای تقسیم ناپذیر را در طول انتشار مجاز دانست.
  • -debug-sharding-origins : آیا باید اطلاعات مربوط به منشأ یک اشتراک گذاری را در ماژول MLIR ذخیره کرد یا خیر. اینها تقسیم‌بندی‌ها در ورودی‌ها، خروجی‌های تابع، محدودیت‌های تقسیم‌بندی و محاسبات دستی قبل از انتشار خواهند بود.
  • -debug-edge-source-sharding : آیا باید اطلاعات مربوط به منبع لبه یک اشتراک گذاری در ماژول MLIR ذخیره شود. اینها همان چیزی است که عملوند/نتیجه یک تقسیم بندی در برخی از نتایج عملیات را معرفی کرد.
  • -propagation-strategy : استراتژی انتشار از کدام عامل استفاده شود.
  • -run-op-priority-propagation : آیا برای اجرای (یا رد شدن) انتشار اولویت اول.
،

-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

الگوریتم انتشار اولویت اول را اجرا می کند.

بر اساس مجموعه ای از اکتشافی های عملیاتی، تکه تکه ها را در تکرارها منتشر می کند. هر اکتشافی تعیین می کند که برای یک عملیات معین در جهت جلو، عقب یا هر دو جهت منتشر شود.

این از اولویت صفر شروع می شود و تا زمانی که تمام اکتشافی های عملیاتی تمام شود و برنامه به نقطه ثابتی برسد افزایش می یابد.

برای اولویت p، تمام اکتشافی های عملیاتی از 0 <= i < p در نظر گرفته می شوند. گویاترین جهت برای هر عملیات انتخاب می شود، با BOTH > BACKWARD == FORWARD > NONE . اگر در طول این تکرار، ابتدا FORWARD / BACKWARD و سپس BACKWARD / FORWARD دیده می شود، جهت BOTH است.

این استراتژی انتشار، استراتژی انتشار تهاجمی را گسترش می دهد، به این معنی که در هر تکرار اولویت اول، یک انتشار تهاجمی کامل اعمال می شود (به 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 پر می کند، که برای اشکال زدایی/آزمایش قوانین اشتراک گذاری ثبت شده استفاده می شود. Propagation قبلاً این کار را به موقع انجام می دهد، اما این پاس همه آن را یکباره انجام می دهد.

گزینه ها

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

-sdy-user-priority-propagate

الگوریتم انتشار با اولویت کاربر را اجرا می کند.

تکه تکه ها را در تکرارها، از بالاترین اولویت (کمترین عدد، معمولاً p0) تا کمترین اولویت (بالاترین عدد) منتشر می کند. به عبارت دیگر، در تکرار i-ام، فقط تقسیم‌بندی ابعاد با اولویت <=i منتشر می‌شود.

این استراتژی انتشار، استراتژی انتشار اولویت را گسترش می دهد، به این معنی که در هر تکرار با اولویت کاربر، یک انتشار با اولویت کامل اعمال می شود (به OpPriorityPropagationPass مراجعه کنید).

گزینه ها:

  • -keep-sharding-rules : آیا باید قوانین موجود و ایجاد شده را حفظ کرد.
  • -module-dump-directory : جایی که ماژول های بازنویسی شده را برای اشکال زدایی تخلیه کنید.
  • -conservative-propagation : آیا نمی توان محورهای تقسیم شده و محورهای تقسیم ناپذیر را در طول انتشار مجاز دانست.
  • -debug-sharding-origins : آیا باید اطلاعات مربوط به منشأ یک اشتراک گذاری را در ماژول MLIR ذخیره کرد یا خیر. اینها تقسیم‌بندی‌ها در ورودی‌ها، خروجی‌های تابع، محدودیت‌های تقسیم‌بندی و محاسبات دستی قبل از انتشار خواهند بود.
  • -debug-edge-source-sharding : آیا باید اطلاعات مربوط به منبع لبه یک اشتراک گذاری در ماژول MLIR ذخیره شود. اینها همان چیزی است که عملوند/نتیجه یک تقسیم بندی در برخی از نتایج عملیات را معرفی کرد.
  • -propagation-strategy : استراتژی انتشار از کدام عامل استفاده شود.
  • -run-op-priority-propagation : آیا برای اجرای (یا رد شدن) انتشار اولویت اول.