قائمة التحقق من مواصفات StableHLO

في هذا المستند، نلخص الإرشادات لمراجعة التغييرات على المواصفات. في الوقت الحالي، تتضمن هذه التغييرات عادةً التحقق من أشياء متعددة في مصادر متعددة، لذلك تلخصها هذه الوثيقة جميعًا لتبسيط المراجعات:

  1. تحقق من أن عمود "Specification" في status.md يقول "yes".
  2. تحقَّق مما إذا كان عنوان القسم يتطابق مع عملية التذكير الخاصة بالعملية في ODS.
  3. تحقَّق مما إذا كان القسم "دلالات" يتطابق مع دلالات العمليات في XLA.
  4. تحقَّق ممّا إذا كان قسما "الإدخالات" و "النتائج":
    1. أدرج نفس العناصر مثل ODS.
    2. أدرِج العناصر نفسها مثل HloInstruction::CreateFromProto.
    3. يتم ترتيبها مثل ODS تمامًا.
    4. في حال عدم التطابق، تأكَّد من توفّر التذاكر المناسبة.
  5. تحقَّق مما إذا كان قسم "القيود":
    1. يطابق تنسيق shape_inference.cc الخاص بـ XLA.
    2. يطابق ملف hlo_verifier.cc الخاص بـ XLA.
    3. يطابق ODS.
    4. يطابق StablehloOps.cpp.
    5. في حال عدم التطابق، تأكَّد من توفّر التذاكر المناسبة. اربط كل تلك التذاكر في المواصفات، في مواقع محدّدة قدر الإمكان (على سبيل المثال، إذا كانت التذكرة تتعلّق بقيد لم يتم تنفيذه، اربط طلب الدعم مباشرةً في ذلك القيد).
    6. إذا كانت الأجزاء المقابلة من ODS وStablehloOps.cpp تتطابق مع المواصفات، تأكَّد من أنّ عمودَي "التحقّق" و "استنتاج الكتابة" في status.md يعرضان كلمة "نعم".
  6. تحقَّق مما إذا كان قسم "الأمثلة":
    1. هناك مثال واحد فقط. (سنضع رابطًا إلى المزيد من الأمثلة من مجموعة اختبار الترجمة الفورية من StableHLO).
    2. يستخدم بنية MLIR صالحة من خلال تنفيذ stablehlo-opt على أمثلة الرموز البرمجية.
    3. يتم استخدام بنية MLIR العامة التي يمكن الحصول عليها من خلال تنفيذ stablehlo-opt -mlir-print-op-generic (نلتزم بالبنية العامة في المواصفات لتجنّب تغيير المواصفات عند تغيير برنامجpretprinter).
  7. يجب التحقّق من أنّ السمة description في البيانات البرمجية المتوفرة للعملية:
    1. تتضمن الجملة الأولى من المواصفات.
    2. ثم يرتبط بالقسم المقابل من المواصفات.
    3. بعد ذلك، سيتم استخدام المثال نفسه المستخدَم في المواصفات، ولكن من خلال بنية بسيطة يمكن الحصول عليها عن طريق تشغيل السمة stablehlo-opt.
  8. تأكَّد من أنّ الملفات المتعلقة بتنفيذ قيود إثبات الملكية وقيود استنتاج النوع تتّبع الإرشادات الموضّحة أدناه:
    1. اتّبِع الإرشادات رقم 1 الخاصة بأداة StablehloOps.td.
    2. اتّبِع الإرشادات رقم 2 بشأن TypeInference.cpp وStablehloOps.cpp.
    3. اتّبِع الإرشادات رقم 5 الخاصة بـ ops_stablehlo.mlir.
    4. اتّبِع الإرشادات رقم 6 الخاصة بـ infer_stablehlo.mlir.