הכלי לנתונים סטטיסטיים של פעולות HLO
אפשר להשתמש בנתונים הסטטיסטיים של פעולות HLO כדי לראות את נתוני הביצועים של פעולות של אופטימיזציה ברמה גבוהה (HLO) שבוצעו במהלך סשן יצירת פרופיל. הכלי הזה מאפשר לזהות יעדים פוטנציאליים לאופטימיזציה של הביצועים על ידי הדגשת הפעולות שגוזלות הכי הרבה זמן בתרשים ה-HLO במהלך התקופה שבה בוצע הפרופיל.
פלטפורמות נתמכות
TPU: נתמך
GPU: נתמך
ב-GPU, לפעולות HLO יש יחס N:M לבין הליבות שבפועל מתבצעות. כדי לראות נתונים סטטיסטיים ברמת הליבה, אפשר להיעזר בכלי 'נתונים סטטיסטיים של ליבה של GPU'.
רכיבי הכלי לנתונים סטטיסטיים של פעולות HLO
הכלי 'נתונים סטטיסטיים של פעולות HLO' כולל את הרכיבים העיקריים הבאים:
- טבלת נתונים סטטיסטיים של פעולות HLO: זהו הרכיב הראשי, שמציג פירוט מפורט של כל פעולת HLO שבוצעה במהלך סשן הפרופיל בפורמט טבלאי. יש שורה אחת לכל פעולת HLO ייחודית, ועמודות שמתעדות פרטים שונים לגבי הפעולה הזו.
- באמצעות בורר נפתח תוכלו להחליט אילו עמודות תרצו להציג כתרשים לכל פעולת HLO.
- אפשר גם לסנן שורות לפי קטגוריית HLO Op באמצעות בורר נפתח שני.
- תיבות החיפוש מאפשרות לסנן לפי מזהי תוכנית ספציפיים, פעולות HLO, טקסט של פעולת HLO או שם הפעולה של המסגרת. המסננים בוחרים את המחרוזת שצוינה שמופיעה בכל מקום בעמודה הרלוונטית.
- קטע התרשימים המסכמים: בקטע הזה מוצגים תרשימים שמסכמים את הטבלה המפורטת לכל פעולה, בדרכים הבאות:
- תרשים עוגה שבו מוצגת חלוקת הזמן לקטגוריות שונות של פעולות HLO.
- תרשים עוגה שבו מוצגת חלוקת הזמן שנצרך על ידי פעולות HLO שונות (התרשים חותך את הרשימה ל-N הפעולות המובילות, והפעולות הנותרות מסווגות כ'אחר' כדי לשפר את הקריאוּת).
- תרשים עוגה שבו מוצגת החלק היחסי של הזמן הכולל שהוקצה לפעולות שנכללות ברימטריאליזציה. XProf מקבל את המידע הזה מהמטא-נתונים של המהדר שמשויכים לפרופיל.
- תרשים עוגה שבו מוצגות קטגוריות של פעולות HLO שבהן חל הזמן של היצירה מחדש (אם יש כזה).
- הזמן שחלף על הידור מחוץ לקוד: הידור מחוץ לקוד הוא תכונה של TensorFlow שמאפשרת לפעולות מסוימות במסגרת חישוב XLA לפעול באופן שקוף במעבד המארח במקום במכשיר המאיץ (למשל, tf.summary או tf.print שדורשים גישה ל-I/O שאין למכשיר).
- תרשים של GFLOPS/s לכל פעולות ה-HLO, ממוינים לפי זמן עצמי כולל.
- ל-TPUs בלבד, זמן לכל HLO לפי קבוצת רפליקות: בתפריט הנפתח תוכלו לבחור מבין הפעולות השונות שבוצעו במהלך סשן הפרופיל. יכול להיות שאירועים שונים של הפעולה הקולקטיבית הזו בוצעו בקבוצות שונות של רפליקות (למשל, AllGather); תרשים עוגה מציג את חלוקת הזמן בין המופעים השונים האלה.
פרטי טבלת הנתונים הסטטיסטיים של פעולות HLO
אפשר ללחוץ על אחת מכותרות העמודות כדי למיין את הטבלה של נתוני הסטטיסטיקה של פעולות HLO. סדר ברירת המחדל מבוסס על סך הזמן שהמשתמש בילה בביצוע הפעולה (העמודה 'דירוג' בטבלה).
בטבלה מפורטים הפרטים הבאים לגבי כל פעולת HLO:
- שם הפעולה: השם הייחודי שהוקצה לפעולת ה-HLO על ידי המהדר של XLA.
- מזהה התוכנית: מזהה של מודול ה-HLO שאליו הפעילות משויכת
- קטגוריית אופרטורים של HLO: הן מוגדרות בעיקר על ידי המהדר של XLA. בנוסף, XProf משתמש בהיגוריסטיקה כדי לזהות פעולות מסוימות ולסווג אותן (למשל, שילובי עיבוד קוונטי).
- טקסט של אופרטורים ברמת HLO: מסופק על ידי המהדר של XLA, וכולל פרטים כמו סוגי הקלט או הפרמטרים והצורות שלהם.
- שם הפעולה ברמת המסגרת: הפעולה ברמת המסגרת (למשל, JAX) שהובילו ליצירת הפעולה הזו של HLO.
- אירועים: המספר הכולל של הפעמים שבהן בוצעה הפעולה הספציפית הזו של HLO במהלך תקופת היצירה של פרופיל הביצועים.
- זמן כולל (μs): הזמן המצטבר של ביצוע הפעולה הזו בכל הפעמים שהיא התרחשה. אם לפעולה הזו יש פעולות צאצא (למשל, בתוך מיזוג), הזמן הזה כולל את הזמן שהיה דרוש לביצוע הפעולות האלה.
- זמן ממוצע (μs): הזמן הממוצע לכל ביצוע של פעולת ה-HLO הזו, כולל הזמן שחלף בפעולות הצאצאים, אם יש כאלה.
- זמן עצמי כולל (μs): הזמן המצטבר שחלף רק בגוף הפעולה של ה-HLO, לא כולל הזמן שחלף בפעולות הצאצאים שלו.
- זמן עצמי ממוצע (μs): הזמן הממוצע לכל ביצוע של פעולת ה-HLO הזו, לא כולל הזמן שחלף בפעולות הצאצאים שלה.
- זמן עצמי כולל (%): זמן העצמי של הפעולה כאחוז מזמן הפעילות הכולל במכשיר בכל הפעולות.
- זמן עצמי מצטבר (%): סכום מצטבר של זמן עצמי (%) לכל הפעולות שמופיעות קודם בסדר 'דירוג'.
- עיכוב DMA (%): האחוז מהזמן הכולל שבו הפעולה נתקעה בגלל פעולות של גישה ישירה לזיכרון (DMA).
- צריכת רוחב הפס (שימוש/שנייה) של FLOPs, HBM וזיכרונות TPU פנימיים, אם הם זמינים (למשל, CMEM קיים רק ב-TPU v4). כל הערכים האלה מחושבים באמצעות ניתוח העלויות הסטטי של המהדר (המונה) וזמן הביצוע של פרופיל הביצוע (המכנה).
- מודל GFLOPS/s: העלות של GFLOPs מחושבת על ידי המהדר של XLA, והזמן נמדד על ידי הפרופיל.
- GFLOPS/s מנורמלים: מניבים נורמליזציה של פעולות ה-FLOP שחושבו על ידי המהדר על בסיס פעולה, על סמך הדיוק המספרי שלה, ושל פעולות ה-FLOP המקסימליות שנתמכות במכשיר בדיוקים שונים. לדוגמה, TPU v6e תומך ב-FLOPs שיא כפולים ב-int8 בהשוואה ל-bf16. XProf מתקן את הערכים ל-bf16 כברירת מחדל.
- רוחב הפס של הזיכרון: מספר הבייטים לשנייה שהפעולה צורכת מכל זיכרון (למשל, TPU VMEM ו-HBM על שבב). המהדר של XLA מספק את מספר הבייטים והמשך נמדד בפרופיל.
- HBM BW: מספר הבייטים לשנייה שנצרכו במיוחד מ-HBM.
- עוצמת הפעולה: מחושב כיחס בין FLOPS לבין בייטים, כפי שמוגדר בניתוח קו הגג.
- מוגבל לעיבוד/זיכרון: על סמך מודל Roofline, העמודה הזו מציינת אם הביצועים של הפעולה מוגבלים בעיקר על ידי יכולות העיבוד או על ידי רוחב הפס של הזיכרון.
- Rematerialization: מציין אם הפעולה הייתה חלק מיצירת מחדש של אובייקט.
- Outside compilation: מציין אם הפעולה בוצעה ב-CPU של המארח באמצעות מתקן ה-outside compilation של Tensorflow.
- Autotuned: מציין אם הפעולה בוצעה אוטומטית על ידי XLA. למידע נוסף, ראו Autotuning וPersisted Autotuning.