برای اطلاعات در مورد 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 را اضافه کنید
کد دقیق مورد نیاز برای ادغام یک ویژگی جدید متفاوت است، اما در بیشتر موارد موارد زیر باید تغییر کنند:
- برای عملیات جدید:
- عملیات را در VhloOps.td اضافه کنید
- تبدیل StableHLO → VHLO را در StablehloLegalizeToVhlo.cpp اضافه کنید
- تبدیل VHLO → StableHLO را در VhloLegalizeToStablehlo.cpp اضافه کنید
- برای نسخه های جدید عملیات موجود:
- عملیات را در VhloOps.td اضافه کنید
- به روز رسانی StableHLO به نقشه برداری VHLO در MapStablehloToVhlo.h
- در VhloToVersion.cpp تبدیل بین نسخه های جدید و قدیمی op اضافه کنید
- برای انواع یا ویژگی های جدید:
- نوع را در VhloTypes.td یا ویژگی را در VhloAttrs.td اضافه کنید
- تبدیل StableHLO → VHLO را در StablehloLegalizeToVhlo.cpp اضافه کنید
- تبدیل VHLO → StableHLO را در VhloLegalizeToStablehlo.cpp اضافه کنید
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