רשימת משימות למפרט StableHLO

במסמך הזה אנחנו מסכמים את ההנחיות לבדיקת השינויים במפרט. בשלב זה, השינויים האלה כרוכים בדרך כלל בבדיקה של מספר דברים במספר מקורות, ולכן המסמך הזה מסכם את כולם כדי לפשט את הבדיקות:

  1. בודקים שבעמודה 'מפרט' ב-status.md מופיע 'כן'.
  2. בודקים אם כותרת הקטע תואמת לכינוי של המבצע ב-ODS.
  3. בודקים אם הקטע 'סמנטיקה' תואם ל-Operation Semantics של 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 כתוב "yes".
  6. בודקים אם בקטע 'דוגמאות':
    1. יש רק דוגמה אחת. (בעתיד נפרסם קישורים לדוגמאות נוספות מתוך חבילת המתורגמנים של StableHLO).
    2. כדי לעשות שימוש בתחביר MLIR תקין, מריצים את stablehlo-opt בדוגמאות לקוד.
    3. נעשה שימוש בתחביר MLIR כללי, שנוצר על ידי הרצת stablehlo-opt -mlir-print-op-generic (אנחנו מקפידים על תחביר גנרי במפרט כדי להימנע מהצורך לשנות את המפרט בשינויים של מדפסת יפהפייה).
  7. בודקים שה-description ב-ODS של ההפעלה:
    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.