-mpmd-convert-sdy-constants

تبدیل sdy.constant ops به stablehlo.constant .

هر sdy.constant op که قابل تا شدن نباشد را به stablehlo.constant op تبدیل می‌کند. دلیلی برای جلوگیری از تا شدن مداوم وجود ندارد زیرا ما در حال جدا کردن sharding ها از ثابت‌ها در mpmd-convert-sdy-shardings-to-mpmd-types هستیم.

-mpmd-convert-sdy-shardings-to-mpmd-types

شاردینگ‌ها را از op attrs به ​​انواع !mpmd.mesh_tensor منتقل می‌کند.

تکه‌های خرد شده را از ویژگی‌های عملیات MPMD (مثلاً قطعات، انتقال) به MeshTensorType نتایج آنها منتقل می‌کند. با فرض اینکه ما انتشار SDY را قبل از این مرحله اعمال کنیم، تکه‌های خرد شده SPMD به ویژگی‌های عملیات متصل می‌شوند. این مرحله تکه‌های خرد شده را به MeshTensorType منتقل می‌کند زیرا مراحل بعدی نیاز دارند که نوع شامل تکه باشد.

این مسیر همچنین هرگونه شاردینگ را از عملیاتی که MeshTensorType ندارند، یعنی عملیات‌های درون mpmd.fragment عملیات، حذف می‌کند.

-mpmd-enforce-user-shardings

شاردینگ‌های مشخص‌شده توسط کاربر را برای ورودی‌ها و خروجی‌ها اعمال می‌کند.

شاردینگ‌های ورودی و خروجی قطعاتی که به ترتیب آرگومان‌های تابع را دریافت می‌کنند یا نتایج تابع را تولید می‌کنند، به گونه‌ای اعمال می‌کند که توسط کاربر مشخص شده باشند، یعنی شاردینگ‌های ورودی و خروجی تابع.

پس از این مرحله، کاربران قطعه‌بندی و انتقال آرگومان‌های تابع و تولیدکنندگان نتایج تابع باید همان شاردینگ‌هایی را داشته باشند که توسط کاربر مشخص شده است. اگر کاربر شاردینگی را برای ورودی یا خروجی مشخص نکرده باشد، این مرحله شاردینگی را که انتشار به آن اختصاص داده است، حفظ می‌کند.

پیش‌شرط:

  • شاردینگ‌های کاربر روی آرگومان‌ها و نتایج تابع به عنوان ویژگی تنظیم می‌شوند.
  • شاردینگ‌های قطعه روی ویژگی‌های in_shardings و out_shardings تنظیم می‌شوند.

-mpmd-extract-reshards-from-inter-mesh-transfers

تقسیم‌بندی مجدد SPMD را حول یک انتقال بین مش به داخل یک قطعه منتقل می‌کند.

با به‌روزرسانی انواع قطعات تولیدکننده/مصرف‌کننده یا با ایجاد قطعات استنباط‌شده برای تولیدکنندگان/مصرف‌کنندگان غیرقطعه‌ای، تضمین می‌کند که تمام انتقال‌های بین مش‌ها (SPMD) آرایه را مجدداً تقسیم‌بندی نمی‌کنند (تقسیم‌بندی‌های ورودی و خروجی آنها یکسان است).

این مورد ضروری است زیرا زمان‌های اجرای MPMD محدودیت‌هایی در مورد resharding های پشتیبانی شده دارند.

این گذر فقط برای توابع MPMD در نمای کلی و با توپولوژی همگن اعمال می‌شود.

پیش‌شرط: همه شاردینگ‌ها به عنوان ویژگی‌های عملیاتی مشخص می‌شوند و نه به صورت نوع.

-mpmd-populate-unreduced-out-sharding

خرده ریزهای کاهش نیافته را برای قطعات پر می‌کند.

روی هر قطعه تکرار می‌کند، به مقادیر بازگشتی آن نگاه می‌کند، بررسی می‌کند که آیا آن مقدار دارای محدودیت شاردینگ محور کاهش نیافته است یا خیر، و در این صورت، ویژگی out_sharding قطعه را اصلاح می‌کند تا شاردینگ کاهش نیافته داشته باشد.

اگر ویژگی out_sharding وجود نداشته باشد، به همراه شاردینگ‌های تکرارشونده پیش‌فرض (به استثنای محورهای کاهش نیافته) اضافه می‌شود.

این مورد نیاز است زیرا خط لوله انتشار SDY، شاردینگ‌های خروجی کاهش نیافته را پر نمی‌کند، فقط شاردینگ‌های ورودی را. از آنجایی که از نظر فنی Shardy مسئول انتشار محورهای کاهش نیافته نیست، این گذرگاه به جای SDY در MPMD قرار دارد.

-mpmd-simplify-program

آرگومان‌ها/نتایج اضافی را از فرگمنت‌ها حذف می‌کند.

یک قطعه کد یا حلقه، عملوندها و نتایج آن، و آرگومان‌های بلوک مربوطه و مقادیر برگشتی آنها را ساده می‌کند.