שגיאות XLA מחולקות לקטגוריות לפי מקורות שגיאות XLA שונים. לכל מקור יש רשימה של הקשר נוסף מלבד הודעת השגיאה, שתצורף לכל שגיאה בקטגוריה.
🚧 שימו לב שהמאמץ הזה לתקנן את הודעות השגיאה הוא תהליך מתמשך, ולכן לא לכל הודעות השגיאה יש עדיין קוד שגיאה מצורף.
דוגמה ליומן שגיאות:
XlaRuntimeError: RESOURCE_EXHAUSTED: XLA:TPU compile permanent error. Ran out of memory in memory space hbm. Used 49.34G of 32.00G hbm. Exceeded hbm capacity by 17.34G. Total hbm usage >= 49.34G: reserved 3.12M program unknown size arguments 49.34G
JaxRuntimeError: RESOURCE_EXHAUSTED: Ran out of memory in memory space vmem while allocating on stack for %ragged_latency_optimized_all_gather_lhs_contracting_gated_matmul_kernel.18 = bf16[2048,4096]{1,0:T(8,128)(2,1)} custom-call(%get-tuple-element.18273, %get-tuple-element.18274, %get-tuple-element.18275, %get-tuple-element.18276, %get-tuple-element.18277, /*index=5*/%bitcast.8695, %get-tuple-element.19201, %get-tuple-element.19202, %get-tuple-element.19203, %get-tuple-element.19204), custom_call_target=""
סטטוסים וכשלים בבדיקה
באופן כללי, ב-XLA אפשר לסמן ביצוע פגום באמצעות שני מנגנונים: סטטוסים וכשלים בפקודת מאקרו CHECK.
הסטטוסים מיועדים לשגיאות לא קריטיות שניתנות לתיקון. ההנחה היא שהפונקציה מחזירה ערך, והביצוע ממשיך לאורך הנתיב שבו המתקשר בודק באופן מפורש את אובייקט הסטטוס שהוחזר. הוא שימושי לטיפול בקלט משתמש לא תקין או במגבלות צפויות של משאבים.
לעומת זאת, כשלים בבדיקה (CHECK) מעידים על שגיאות בתכנות או על הפרות של כללים שלא אמורים לקרות אם הקוד נכון. במקרה של הפעלה, התוכנית תרשום את הודעת השגיאה ותסתיים באופן מיידי. היא יכולה לוודא עקביות פנימית, למשל לבדוק שהמצביע לא ריק לפני שמבטלים את ההפניה שלו.