يمكنك الانتقال إلى vhlo.md
للحصول على معلومات عن VHLO.
المساهمة بالتغييرات غير المتوافقة
يجب أن تمر جميع التغييرات التي لها آثار التوافق بعملية RFC. يتضمن ذلك إضافة عنصر أو إيقافه أو إعادة تسميته. بمجرد وضع RFC تمت الموافقة عليه، يجب إكمال الخطوات التالية:
1. اضغط على رقم الإصدار في Version.h وعدِّل سجلّ الإصدارات.
قبل تحديث عمليات VHLO أو السمات أو الأنواع أو الإحالات الناجحة، عليك زيادة رقم الإصدار الثانوي في Version.h، وتعديل سجلّ الإصدار في VhloDialect.td
أي ميزات جديدة في VHLO ستستخدم هذا الإصدار الذي تم إصلاحه، على سبيل المثال بعد
اصطدام 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
- بالنسبة إلى الأنواع أو السمات الجديدة:
- أضِف النوع في VhloTypes.td أو السمة في VhloAttrs.td
- إضافة StableHLO → تحويل VHLO في StablehloLegalizeToVhlo.cpp
- إضافة تحويل VHLO ← StableHLO في VhloLegalizeToStablehlo.cpp
3- إضافة / تحديث اختبارات الوحدة
المساهم في التغيير غير المتوافق هو المسئول عن كلٍ من الإيجابيات اختبارات سلبية للوحدة للميزة، بالإضافة إلى اختبارات وحدة التوافق.
يتضمن اختبار وحدة التوافق تحديث stablehlo_legalize_to_vhlo.mlir.
للتأكد من رحلات ذهاب وعودة StableHLO باستخدام أحدث إصدار من VHLO، بالإضافة إلى
كإجراء أي اختبارات إضافية للتوافق الأمامي أو الخلفي. على سبيل المثال:
في حال إضافة عملية جديدة في الإصدار X
باستخدام Y = X - 1
، يمكنك إضافة ملف اختبار، مثل
vhlo_to_version_downgrade_invalid.0_Y_0.mlir
الذي يشير إلى العملية غير متوافقة
قبل الإصدار X
. في حالة إضافة إصدار جديد من العملية، أضف ملف اختبار مثل
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