في هذه الوثيقة، نلخص المبادئ التوجيهية لتطبيق ومراجعة لعملية الترجمة الفورية. لقد عمدنا إلى تضمين بعض الإجراءات الإضافية العناصر المتعلقة بأداة التحقق والاستنتاج النوعي، مع فكرة إحراز تقدم على تلك الجبهات إلى جانب توفير الترجمة الفورية.
أثناء تنفيذ العملية
- تقديم استراتيجية اختبار مكتوبة بشكل واضح (في وصف العلاقات العامة) مشابه لـ لاستخدام كمرجع أثناء مراجعة التحقق والكتابة بالاستنتاج والطرق والاختبارات المقابلة. سيتحقق المراجع مرة أخرى من أن ووصفها شامل.
- استشارة hlo_evaluator لتحديد تفاصيل عملية التنفيذ الصعبة والثغرات المحتملة في الوظائف.
- تقديم تذاكر لمكونات البرنامج المقابلة إذا وجدت أي أخطاء أو وظيفة مفقودة.
بعد تنفيذ العملية
في StablehloOps.td:
- يُرجى التأكّد من أنّ السمة
summary
في الطلب المخصّص للحلّ النزاعات خارج نطاق المحكمة تتَّبِع التنسيق العادي. (تذكرة ذات صلة) أضِف تعليقات تشير إلى تصنيفات القيود (مثل
Cn
أوIn
) من المواصفات بالتنسيقxyz_cn
أوxyz_in
، بالنسبة إلى الأمرXyzOp
، لتحديد أي ارتباط بين القيود في الهيئة المعنيّة بحلّ النزاعات خارج نطاق المحكمة والمواصفات. تشير رسالة الأشكال البيانية يوضح المثال التالي كيفية إضافة تصنيفات القيد كتعليقات إلى جانب مليلTraits
وTypeConstraints
. الملاحظةxyz_c4
تشير إلى القيود المحددة في الفئةStableHLO_FooOp
(على سبيل المثال،StableHLO_ShapedInterfaceOp
،StableHLO_UnaryElementwiseOp
،StableHLO_Op
وما إلى ذلك).def StableHLO_XyzOp: StableHLO_FooOp<"xyz", [Trait1, Trait2 /*xyz_c1, xyz_c2*/, InferTensorType /*xyz_c3*/]> { /*xyz_c4*/ ... let summary = "Xyz operation"; let arguments = (ins 1DTensorOf<[HLO_Float]>:$a, /*xyz_c5, xyz_i1*/ HLO_Tensor:$b, /*xyz_i2*/ .... ); );
- يُرجى التأكّد من أنّ السمة
في TypeInference.cpp وStablehloOps.cpp:
- احذف التعليقات التي تشير إلى عبارات مثل "التحقّق من السمات التالية: ...".
- أضِف تعليقات تشير إلى تصنيفات القيود (مثل
Cn
أوIn
) من المواصفات بالتنسيقxyz_cn
أوxyz_in
، بالنسبة إلى الأمرXyzOp
، لتحديد أجزاء أدوات التحقق ودوال الشكل التي تتوافق مع القيود في المواصفات.- فلا مانع من أن يكون لديك تعليق به تسميات قيود متعددة أو أن يكون لديك
تعليقات متعددة بنفس تسمية القيد. يعتمد كل ذلك على
وكيفية تنفيذ القيود. إذا كانت هناك قيود متتالية،
وأختصرها باسم
xyz_cn...xyz_cm, xyz_in...xyz_jn
. - في حالة وجود عدم تطابق بين القيود في التنفيذ VS وتلك الموجودة في المواصفات، تأكد من وجود مشكلة مفتوحة تعكس هذا التناقض.
- فلا مانع من أن يكون لديك تعليق به تسميات قيود متعددة أو أن يكون لديك
تعليقات متعددة بنفس تسمية القيد. يعتمد كل ذلك على
وكيفية تنفيذ القيود. إذا كانت هناك قيود متتالية،
وأختصرها باسم
-
- أضِف ملفًا باسم
<op_mnemonic>.mlir
. - اكتب الاختبارات وفقًا لإرشادات الاختبار.
- أضِف ملفًا باسم
في دليل testdata:
- يمكنك إجراء أي اختبارات غير مفعّلة تشملها العملية المضافة حديثًا.
- إذا اجتزت الاختبارات، يمكنك تفعيلها من خلال تحويل
RUN-DISABLED
إلىRUN
. - وفي حال تعذُّر إجراء أي اختبار لسبب آخر غير عدم تطابق الدقة، عليك إصلاح التنفيذ/الاختبار.
- بالنسبة إلى حالات عدم تطابق الدقة، ضَع علامة
RUN-DISABLED(#1278)
على الاختبار (إذا إلا أنه لم يتم الانتهاء منه بالفعل).
-
- احرص على أن يكون هناك اختبار واحد على الأقل (إيجابي أو سلبي) لكل اختبار. قيدًا في أداة التحقق وطريقة الاستنتاج؛ القيود المشمولة في الهيئة المعنيّة بحلّ النزاعات خارج نطاق المحكمة. ستكون هذه الاختبارات سلبية في الغالب، اختبار عدم استيفاء القيود أو الإيجابية، واختبار بشكل مستنتَج صحيحًا.
- التأكّد من إجراء جميع الاختبارات المرتبطة بالعملية التي تخضع للاختبار
- تأكَّد من أنّ جميع الاختبارات المرتبطة بالعملية قيد الاختبار
مرفق بوحدة ماكرو
CHECK-LABEL
مضيئة. - اختر اسم دالة الاختبارات باستخدام التنسيق
xyz_cn_im_...
لقيود اختبار الدوالCn
،Im
، وما إلى ذلك في الجزءXyzOp
. في الحالات التي لا يكون فيها التنسيق المقترح تطبيقه، واحتفظ بالاسم الحالي. - بعد اكتمال الخطوة أعلاه، يمكنك ترتيب جميع الاختبارات ذات الصلة بالعملية قيد الاختبار أبجديًا بناءً على اسم الدالة.
- يُرجى مواصلة إضافة الاختبارات إلى أن يظهر ccov تغطية للعملية بنسبة >= 90%
-
- التأكّد من توفّر جميع القيود المتعلقة باختبارات استنتاج الشكل في هذا الملف، مع اتباع إرشادات التسمية نفسها المذكورة أعلاه.
- انقل أي اختبارات لاستنتاج الأشكال من ops_stablehlo.mlir. ملف في هذا الملف.
في spec.md:
- إضافة رابط إلى
stablehlo/tests/interpret/<op_mnemonic>.mlir
إلى قسم "الأمثلة" قسم (مثلاً، مزيد من الأمثلة). - احرِص على أن تتضمّن المواصفات مثالاً واحدًا فقط.
- تأكَّد من أنّ مثال المواصفات يتّبع إرشادات الاختبار.
- يُرجى التأكّد من أنّه يمكن تفسير اختبار مثال المواصفات.
- تأكَّد من أنّ مثال المواصفات هو نفسه الوارد في الهيئة المعنيّة بحلّ النزاعات خارج نطاق المحكمة.
- إضافة رابط إلى
في status.md:
- تعديل ميزة "الترجمة الفورية" عمود إلى
yes
.
- تعديل ميزة "الترجمة الفورية" عمود إلى