מפת דרכים של StableHLO

בשעת הכתיבה, StableHLO מוכן להחליף את MHLO/HLO כממשק המהדר. יכול להיות שהוא מיוצר על ידי TensorFlow, JAX ו-PyTorch, מתאים לשימוש על ידי XLA ו-IREE, וכולל את כל התכונות הציבוריות שמסופקות על ידי MHLO/HLO וכן פונקציונליות נוספת.

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

יעדים

בשנת 2023 אנחנו מתכננים שתי אבני דרך חשובות: 1) StableHLO v0.9 שיספק גרסה ראשונית של ההפעלה והאחריות לתאימות הראשונית, 2) StableHLO גרסה 1.0, שתטמיע שיפורים בעדיפות גבוהה ותתחיל לספק התחייבויות לתאימות מלאה.

גרסה 0.9 של StableHLO v0.9 תשקף את MHLO/HLO, בתוספת מפרט של פעולות בצורת סטטיות והתחייבויות לתאימות ראשונית. בהתאם ל-RFC של תאימות, הגרסה הזו מספקת תאימות קדימה ואחורה למשך חודש. ההבטחות הצנועות האלה יאפשרו לצבור ניסיון באבולוציה של דיאלקטים ויתנו קצת זמן לניקוי לפני שההתחייבות המלאה תיכנס לתוקף. אנחנו מתכננים להשיק את גרסה 0.9 של StableHLO ברבעון הראשון של 2023.

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

תהליכי עבודה

כדי לארגן את הפיתוח לקראת ציוני הדרך שצוינו למעלה, סיווגנו את הכרטיסים במעקב אחר בעיות למספר תהליכי עבודה וקישרנו את תהליכי העבודה האלה לאבני הדרך. מספר מוגבל של כרטיסים (פחות מ-10%) לא מוקצים לתהליך עבודה ספציפי, והם לא חלק מציון דרך ספציפי.

(P0) סביבת העבודה הטמעת תאימות מיועדת להטמעת ה-RFC של התאימות יחד עם חבילה של בדיקות תאימות. אנחנו צפויים להשלים את רוב העבודה הזו ב-StableHLO בגרסה 0.9, ואת השאר יבוצעו ב-StableHLO בגרסה 1.0.

(P0) תהליך העבודה של Frontend Contract כולל הטמעה של 100% מהתכונות שנמצאות בשימוש בממשקי הקצה של StableHLO, אבל עדיין לא נכללות במפרט StableHLO. המטרה של תהליך העבודה היא לוודא שתוכניות StableHLO כוללות רק פעולות מתוך הניב יציב, ולא שילוב ניבים ומאפיינים לא-רשומים שקיימים כיום. אנחנו מתכננים להשלים את כל העבודה או את כל העבודה בתהליך העבודה הזה בגרסה 1.0 של StableHLO.

(P0) בתהליך העבודה של Reference Implementation מתבצע ארגון העבודה על הטמעה של תרגום עזרה ל-100% מהפעולות ב-StableHLO, כפי שמוגדר במפרט StableHLO. אנחנו מתכננים להשלים את כל העבודה או את רובה בתהליך העבודה בגרסה 1.0 של יציבה.

(P0) מערך העבודה של התיעוד מיועד לספק את כל המידע שהמפתחים והצרכנים של StableHLO עשויים להזדקק לו. מפרט StableHLO הוא אמצעי העברה משמעותי, כמו גם הפניה לפורמט של StableHLO API ושל פורמט StableHLO בהמשכים. חלקים קריטיים של תהליך העבודה יימסרו ב-StableHLO v1.0, עם פריטים בעדיפות נמוכה, שיטופלו על בסיס מתמשך.

(P1) תהליך העבודה של Conformance Suite כולל חבילת בדיקות שמשווה בין הטמעה של קובץ עזר לבין הטמעות שמסופקות על ידי קצוות עורפיים של StableHLO. לבדיקות של הטמעת קובצי העזר יוצעו סוגים שונים של תאימות, כך שלתהליך העבודה הזה אין עדיפות P0. עם זאת, אם תרחיבו את החבילה הזו על ידי שימוש במקרי בדיקה מעניינים נוספים, סביר להניח שתוכלו להיעזר בה לצורכי עבודה עתידית.

(P1) זרם העבודה של מפרט התאימות מבטיח ש-100% מפעולות StableHLO יוטמעו בדיאלקט של StableHLO, כפי שמוגדר במפרט StableHLO. הניב StableHLO כבר תואם במידה סבירה, כך שלתהליך העבודה הזה אין עדיפות P0, אבל הרבה פריטים משניים עדיין נותרו (במיוחד במקרים של הטמעת המאמת) והם יטופלו באופן שוטף.

(P1) זרימת העבודה של New Features (תכונות חדשות) כוללת את מפת הדרכים של StableHLO, ומורכבת מאוסף ragtag של פונקציונליות חדשה של קבוצת StableHLO (לא ניב StableHLO) או קישור StableHLO, שהם תהליכי עבודה אחרים. חלק מהתכונות החדשות האלה מתוכננות להופיע ב-StableHLO v1.0, אבל רובן הן כרגע פריטים בעדיפות נמוכה יותר, שהן לא חלק מציון דרך ספציפי.

(P1) תהליך העבודה של Public API מיועד לספק קישורי C/C++/Python לדיאלקט של StableHLO. קישורי C++/Python קיימים כבר סבירים, כך שאין לתהליך העבודה הזה עדיפות P0. עם זאת, יש עוד הרבה מה לשפר, במיוחד בכל מה שקשור ליציבות הקישורים האלה, דבר שלא נכלל כרגע ב-RFC של התאימות, אבל הוא ככל הנראה יכול להיות מקום שימושי לעבודה בעתיד.