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

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

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