רשימת משימות VHLO

מידע על VHLO זמין במאמר vhlo.md.

הוספת שינויים לא תואמים

כל השינויים שיש להם השלכות על תאימות חייבים לעבור את תהליך ה-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

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

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 שמראה שאפשר לשדרג לאחור את הפעולה.

אם לפעולה יש מאפייני ברירת מחדל, צריך לכלול בדיקות שמראות שהמאפיינים האלה עוברים סריאליזציה ופעולה הפוכה (deserialization) בצורה נכונה.

4. הוספת בדיקת סריאליזציה של גרסאות

אחרי שמוסיפים בדיקות ל-stablehlo_legalize_to_vhlo.mlir, מעתיקים את קובץ הבדיקה עם הגרסה הגדולה ביותר לקובץ חדש בגרסה החדשה, ומוסיפים את הבדיקות החדשות גם לקובץ הזה. תצטרכו גם ליצור קובץ bytecode משויך באמצעות 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