چک لیست VHLO

برای اطلاعات در مورد VHLO به vhlo.md مراجعه کنید.

کمک به تغییرات ناسازگار

تمام تغییرات با مفاهیم سازگاری باید از طریق فرآیند RFC انجام شود. این شامل افزودن، حذف یا تغییر نام یک ویژگی است. پس از تایید RFC، مراحل زیر باید تکمیل شود:

1. شماره نسخه را در Version.h وارد کنید و گزارش نسخه را به روز کنید

قبل از به‌روزرسانی عملیات، ویژگی‌ها، انواع یا تبدیل‌های VHLO، شماره نسخه جزئی را در Version.h افزایش دهید و گزارش نسخه را در VhloDialect.td به‌روزرسانی کنید.

هر ویژگی جدید VHLO اضافه شده از این نسخه bump شده استفاده می کند، به عنوان مثال پس از bumping 0.10.0 --> 0.11.0 ، یک عملیات جدید در VhloOps.td استفاده می کند:

VHLO_Op<"abs_v2", "0.11.0", "current">

2. پیاده سازی و تبدیل های مورد نیاز VHLO را اضافه کنید

کد دقیق مورد نیاز برای ادغام یک ویژگی جدید متفاوت است، اما در بیشتر موارد موارد زیر باید تغییر کنند:

3. اضافه کردن / به روز رسانی تست های واحد

عامل یک تغییر ناسازگار مسئول تست های واحد مثبت و منفی ویژگی و همچنین تست های واحد سازگاری است.

تست واحد سازگاری شامل به‌روزرسانی stablehlo_legalize_to_vhlo.mlir است تا اطمینان حاصل شود که StableHLO با آخرین نسخه VHLO رفت و آمد می‌کند، و همچنین هرگونه آزمایش اضافی سازگاری رو به جلو یا عقب مورد نیاز است. به عنوان مثال، اگر یک op جدید را در نسخه X با Y = X - 1 اضافه کنید، یک فایل آزمایشی مانند vhlo_to_version_downgrade_invalid.0_Y_0.mlir اضافه کنید که نشان می دهد عملیات قبل از نسخه X پشتیبانی نمی شود. اگر نسخه جدیدی از یک op را اضافه می‌کنید، یک فایل آزمایشی مانند vhlo_to_version_downgrade.0_Y_0.mlir اضافه کنید که نشان می‌دهد می‌توان عملیات را با موفقیت کاهش داد.

اگر عملیات شما دارای ویژگی‌های پیش‌فرض است، آزمایش‌هایی را اضافه کنید که نشان می‌دهد پیش‌فرض‌ها به‌درستی سریال‌سازی شده‌اند.

4. تست سریال سازی نسخه شده را اضافه کنید

پس از افزودن تست ها به stablehlo_legalize_to_vhlo.mlir ، فایل آزمایشی نسخه شده با بزرگترین نسخه را در یک فایل جدید در نسخه جدید کپی کنید و تست های جدید را نیز به آن فایل اضافه کنید. همچنین باید یک فایل بایت کد مرتبط با استفاده از stablehlo-translate ایجاد کنید:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc