ניהול פרופילים באמצעות XProf
אתם יכולים להשתמש בפרופיילינג מנוהל של XProf כשאתם משתמשים במעקב אחרי עומסי עבודה של אבחון ל-ML, ב-CLI של אבחון ל-ML או ב-SDK של אבחון ל-ML. Managed XProf הוא מכונה של XProf עם קצה עורפי שניתן להתאמה, שפלטפורמת ML Diagnostics מקצה ומנהלת בפרויקטGoogle Cloud . לעומת זאת, ב-self-hosted XProf צריך לפרוס ולתחזק באופן ידני את המכונות של XProf כדי לראות את הפרופילים.
XProf הוא כלי בקוד פתוח ליצירת פרופילים ולניתוח ביצועים של עומסי עבודה (workload) של למידת מכונה (ML), והוא חלק מהסביבה העסקית של OpenXLA. בהשוואה ל-XProf באירוח עצמי, ב-XProf מנוהל יש את התכונות הבאות:
- ללא הגדרה: לא צריך להתקין או להגדיר ידנית את שרתי התצוגה החזותית של XProf או את יחסי התלות שלהם.
- גישה מרוכזת לסשנים של פרופילים עם כמה הרצות: טעינת סשנים של פרופילים בהרצות שונות של למידת מכונה, באמצעות מכונה מנוהלת אחת של XProf לכל פרויקט.
- התאמה אוטומטית לעומס וטעינה מהירה: טעינה מהירה יותר של פרופילים גדולים והתאמה אוטומטית של משאבי בק-אנד לעומס כשריבוי משתמשים צופים בפרופילים בו-זמנית.
- אבטחה ושיתוף פעולה מובנים: יוצר קישורים שניתן לשתף לסשנים של פרופילים, תוך הגנה על מופעי הפרופילים מפני פרצות אבטחה.
- מצבים שונים של תיעוד פרופילים: תמיכה בתיעוד של כמה מארחים, יצירת פרופילים על פי דרישה, יצירת פרופילים רציפה במצב תמונת מצב ותיעוד פרופילים אוטומטי ממעקב אחרי עומסי עבודה.
- אין עלויות תשתית נוספות: מספק משאבי מחשוב מנוהלים של XProf ללא תשלום נוסף, בניגוד לאירוח עצמי של מכונה של XProf.
נתיבי פריסה
אתם יכולים לפרוס ולהפעיל את XProf המנוהל באמצעות ML Diagnostics SDK, מעקב אחרי עומסי עבודה או ML Diagnostics CLI.
פלטפורמת ML Diagnostics פורסת מכונה מנוהלת אחת של XProf עם קצה עורפי שניתן להתאמה לכל פרויקט. אתם יכולים להשתמש במכונה הזו כדי לראות את כל סשני הפרופילים שנוצרו בכל הרצות ה-ML בפרויקט. כדי לתעד פרופילים, צריך גם קטגוריה של Cloud Storage שמשויכת להרצת ה-ML, שבה יישמרו נתוני הפרופיל המתועדים.
כדי להפעיל את XProf מנוהל ולשייך קטגוריה של Cloud Storage להרצת ה-ML, אתם יכולים להשתמש בכל אחת מהדרכים הבאות:
- ML Diagnostics SDK: כשפורסים את הרצת ה-ML הראשונה באמצעות ה-SDK, פלטפורמת ML Diagnostics מפעילה ופורסת באופן אוטומטי מכונה מנוהלת של XProf בפרויקט. כדי לציין את הקטגוריה של Cloud Storage שבה יישמרו הפרופילים, מגדירים את הפרמטר
gcs_pathכשמגדירים את הרצת ה-ML ב-SDK. - מעקב אחרי עומסי עבודה: כברירת מחדל, מעקב אחרי עומסי עבודה לא מפעיל את XProf מנוהל. במקום זאת, בפעם הראשונה שתיעוד הפרופיל האוטומטי מפעיל סשן פרופיל בפרויקט, פלטפורמת ML Diagnostics מקצה ומפעילה באופן אוטומטי מכונה מנוהלת של XProf. כברירת מחדל, הכלי 'אבחון ML' גם מקצה קטגוריה של Cloud Storage אזורית בפרויקט שלכם.
- ML Diagnostics CLI: אתם יכולים לעדכן כל הרצת למידת מכונה כדי להפעיל את הכלי XProf, שפורס את המכונה המנוהלת של XProf בפרויקט שלכם, ולשייך קטגוריה של Cloud Storage להרצת למידת המכונה.
תיעוד פרופילים
ב-ML Diagnostics יש ארבע שיטות לאיסוף פרופילים של XProf: איסוף פרוגרמטי, יצירת פרופילים על פי דרישה, יצירת פרופילים רציפה במצב תמונת מצב ואיסוף פרופילים אוטומטי ממעקב אחרי עומסי עבודה. השיטות האלה נבדלות זו מזו באופן שבו מתבצעת הפעלה של תיעוד ובחלון הזמן שהן מתעדות.
בטבלה הבאה מוצגת השוואה בין השיטות לתיעוד פרופילים:
| שיטת תיעוד | תיאור | frameworks נתמכים |
|---|---|---|
| תיעוד פרוגרמטי |
הטמעת פקודות ליצירת פרופילים ישירות בקוד של עומס העבודה, כדי להתחיל ולהפסיק את תיעוד נתוני הפרופיל בשלבי אימון או בפונקציות ספציפיים. כדאי להשתמש בשיטה הזו כשרוצים פרופילים שניתנים לשחזור של שלבי אימון ידועים או קטעי קוד ספציפיים. |
JAX, vLLM, Tunix, TorchTPU |
| יצירת פרופילים על פי דרישה |
מפעיל תיעוד פרופיל בזמן אמת ממסוף Google Cloud או מה-CLI של gcloud, למשך הזמן שציינתם בזמן שעומס העבודה פועל. כדאי להשתמש בשיטה הזו כשרוצים לבדוק עומס עבודה שפועל בזמן אמת בלי לשנות את טווחי השלבים או להפעיל מחדש את עומס העבודה. |
JAX, vLLM, Tunix, TorchTPU |
| יצירת פרופילים רציפה במצב תמונת מצב (תצוגה מקדימה) |
הקלטה רציפה של פרופיל בנפח 2GB של מעקבי מכשיר במאגר נתונים זמני מעגלי במארחי ה-TPU, ושמירת מאגר הנתונים הזמני האחרון בנפח 2GB בקטגוריה של Cloud Storage כשמפעילים תמונת מצב. כדאי להשתמש בשיטה הזו כשרוצים לבדוק את הפעילות של עומס העבודה שמובילה להאטה או לחריגה לסירוגין. |
JAX, vLLM, Tunix |
| תיעוד פרופיל אוטומטי ממעקב אחרי עומסי עבודה (גרסת טרום-השקה) |
הפעלה אוטומטית של תיעוד פרופיל XProf כשמנתח הירידה בביצועים של מעקב אחרי עומס העבודה מדווח על מצב השיטה הזו מתאימה כשרוצים שכלי האבחון של ML יתעד נתוני מעקב ברגע שהביצועים יורדים, בלי לחכות להפעלה ידנית של התיעוד. |
JAX, vLLM, Tunix, TorchTPU |
צילום פרוגרמטי
כשמשתמשים באיסוף פרוגרמטי, מטמיעים פקודות ליצירת פרופילים ישירות בקוד של עומס העבודה, כדי לציין במפורש מתי להתחיל ומתי להפסיק את תיעוד נתוני הפרופיל. כל הפרופילים שנכתבים בקטגוריה של Cloud Storage שצוינה בפרמטר gcs_path להרצת ה-ML, מופיעים באופן אוטומטי כסשנים של פרופילים במכונה המנוהלת של XProf בפרויקט. אפשר לראות אותם במסוףGoogle Cloud או באמצעות Google Cloud CLI.
אפשר להגדיר תיעוד פרוגרמטי באחת מהדרכים הבאות:
- ML Diagnostics SDK:
משתמשים בשיטות
profב-SDK. השיטות האלה כוללות את ממשקי ה-API הבסיסיים ליצירת פרופילים ברמת ה-framework, כך שקוד יצירת הפרופילים נשאר עקבי ב-JAX, ב-vLLM, ב-Tunix וב-TorchTPU. - Framework-native profiling APIs: קוראים ישירות לשיטות הפרופיילינג המובנות של מסגרת ה-ML ושומרים את הפלט בקטגוריה של Cloud Storage של הרצת ה-ML:
- JAX: יצירת פרופיל של חישוב
- vLLM: יצירת פרופיל של vLLM ב-Cloud TPU
- TorchTPU: Performance profiling with XProf
יצירת פרופילים על פי דרישה
יצירת פרופילים על פי דרישה מאפשרת להפעיל תיעוד של פרופיל בזמן אמת בזמן שעומס העבודה פועל. הפעלה של תיעוד לפי דרישה מתעדת פרופיל למשך הזמן שציינתם. אתם יכולים להפעיל פרופיילינג על פי דרישה ישירות בקוד של עומס העבודה או באמצעות ML Diagnostics SDK.
דרישות מוקדמות
לפני שיוצרים פרופיל לפי דרישה, צריך לבצע את שלבי ההגדרה הבאים:
מפעילים שרת XProf ביציאה
9999בעומס העבודה, כדי שיגיב לטריגרים של תיעוד לפי דרישה:ישירות ב-JAX: מפעילים את ה-method
profiler.start_serverביציאה9999:profiler.start_server(port=9999)ML Diagnostics SDK: מגדירים את
on_demand_xprof=Trueב-machinelearning_runכשמגדירים את הרצת ה-ML.
מגדירים את סביבת המחשוב או את כלי הניהול של האשכול:
- Google Kubernetes Engine (GKE) או Kubernetes בניהול עצמי: פורסים את האופרטור ו-webhook או את DaemonSet של אבחון ל-ML.
- Slurm בניהול Cluster Director או בניהול עצמי: פורסים את הדימון של ML Diagnostics באמצעות סקריפט פרולוג של Slurm.
- Compute Engine: פורסים את הדימון של ML Diagnostics באמצעות סקריפט לטעינה בזמן ההפעלה של המכונה.
איך מתעדים פרופיל על פי דרישה
אפשר להפעיל איסוף פרופילים על פי דרישה ממסוףGoogle Cloud או מה-CLI של gcloud. כשמפעילים תיעוד, צריך לציין את הפרמטרים הבאים:
- Duration (משך זמן): משך התיעוד, באלפיות השנייה או בשניות. משך הזמן המקסימלי שניתן לתעד תלוי במאפייני עומס העבודה ובכמות הנתונים שנכנסים למגבלת הפרופיל של 2GB.
- יעדים: צומתי היעד שבהם רוצים לתעד את הפרופיל:
- Google Cloud console: כל הצמתים שמריצים את עומס העבודה מאוכלסים באופן אוטומטי, ואפשר לבחור את כל הצמתים או קבוצת משנה שלהם.
- ה-CLI של gcloud: מציגים את יעדי ה-profiler של עומס העבודה, ואז מפעילים תיעוד של כל היעדים האלה או של קבוצת משנה שלהם.
- רמות המעקב של המכשיר, המארח ו-Python: רמת הפירוט של המעקב אחרי המכשיר, המארח ו-Python.
יצירת פרופילים רציפה במצב תמונת מצב
כשהפרופיילינג הרציף מופעל, פלטפורמת ML Diagnostics מתעדת באופן רציף פרופיל של 2GB במאגר נתונים זמני מעגלי במארחי ה-TPU. כשמפעילים תמונת מצב, הכלי "אבחון באמצעות למידת מכונה" שומר את הפרופיל האחרון בגודל 2GB מהמאגר כסשן פרופיל בקטגוריה של Cloud Storage. תמונת המצב הזו מאפשרת לבדוק את הפעילות של עומס העבודה שהובילה לבעיה. הפרופיילינג הרציף תומך רק במעקב אחר מכשירים, ולא אוסף נתוני מעקב של המארח או של Python.
דרישות מוקדמות
לפני שמתחילים ליצור פרופילים באופן רציף, צריך לוודא שהסביבה עומדת בדרישות הבאות:
- גרסאות נתמכות של הספרייה:
- גרסה
0.0.43שלlibtpuאו גרסה חדשה יותר. - גרסה
0.11.0שלjaxאו גרסה חדשה יותר.
- גרסה
- הגדרת סביבת המחשוב או התזמור של האשכול:
- GKE או Kubernetes בניהול עצמי: פורסים את ML Diagnostics DaemonSet.
- Slurm בניהול Cluster Director או בניהול עצמי: פורסים את הדימון של ML Diagnostics באמצעות סקריפט פרולוג של Slurm.
- Compute Engine: פורסים את הדימון של ML Diagnostics באמצעות סקריפט לטעינה בזמן ההפעלה של המכונה.
מפעילים את שרת XProf בקוד של עומס העבודה באמצעות קריאה ל-profiler.start_server(port=9999), או מגדירים את on_demand_xprof=True ב-machinelearning_run כשמשתמשים ב-ML Diagnostics SDK.
התחלת יצירת פרופילים רציפה
אפשר להתחיל פרופיילינג רציף ישירות בקוד של עומס העבודה, באמצעות ה-CLI של gcloud או במסוף Google Cloud . אחרי ההפעלה, פרופיילינג רציף מתעד פרופילים בנפח 2GB במאגר נתונים זמני מעגלי במארחי ה-TPU שצוינו.
כשמתחילים פרופיילינג רציף באמצעות ה-CLI של gcloud או מסוףGoogle Cloud , צריך לציין את הפרמטרים הבאים:
- Targets: צומתי היעד שרוצים ליצור להם פרופיל באופן רציף:
- Google Cloud console: כל הצמתים שמריצים את עומס העבודה מאוכלסים באופן אוטומטי, ואפשר לבחור את כל הצמתים או קבוצת משנה שלהם.
- ה-CLI של gcloud: מציגים את יעדי ה-profiler של עומס העבודה, ואז מתחילים את יצירת הפרופילים הרציפה לכל היעדים או לחלק מהם.
- רמת המעקב במכשיר: רמת המעקב במכשיר שרוצים לתעד באופן רציף. מעקב אחר מארח ו-Python מושבת במהלך יצירת פרופילים רציפה.
אפשר להתחיל יצירת פרופילים רציפה ישירות מקוד עומס העבודה של Python, ב-CLI של gcloud או במסוף Google Cloud .
קוד של עומס עבודה ב-Python
כדי להתחיל יצירת פרופילים רציפה ישירות מקוד עומס העבודה של Python, צריך להפעיל את הפונקציה start_continuous_profiling:
from xprof.api import continuous_profiling_snapshot
continuous_profiling_snapshot.start_continuous_profiling('localhost:9999', {})
מידע נוסף זמין במאמר יצירת פרופילים של JAX באמצעות XProf.
CLI של gcloud
כדי להתחיל יצירת פרופילים רציפה מה-CLI של gcloud, מציגים את יעדי ה-profiler הפעילים ומתחילים יצירת פרופילים רציפה בצמתים האלה באמצעות הפקודות הבאות:
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"
# 1. Discover active ProfilerTarget IDs on the ML run:
TARGETS=$(gcloud alpha mldiagnostics profiler-target list \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--format="csv[no-heading](name.basename())" | paste -sd, -)
# 2. Start continuous profiling across the target nodes:
gcloud alpha mldiagnostics machine-learning-run start-continuous-profiling \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--targets="${TARGETS}" \
--device-tracer-level=enabled
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: האזור שבו נמצאת הרצת ה-ML. -
RUN_ID: המזהה של הרצת ה-ML.
מסוףGoogle Cloud
כדי להתחיל פרופיילינג רציף במסוף Google Cloud :
- במסוף Google Cloud , נכנסים אל Cluster Director או אל GKE > AI/ML > Run Diagnostics ובוחרים את הרצת ה-ML.
- פותחים את הכרטיסייה פרופילים.
- בסרגל הפעולות העליון, לוחצים על התחלת יצירת פרופיל רציפה.
- בוחרים את הצמתים לפרופיילינג ואת רמת המעקב במכשיר, ולוחצים על Start.
אחרי שמתחילים את יצירת הפרופילים הרציפה, בבאנר Capturing continuous profiles מוצגת שעת ההתחלה של הסשן בתור Since START_TIME, ובסרגל הפעולות מוצגות האפשרויות Take snapshot ו-Stop continuous profiling.
צילום תמונת מצב
בזמן שהפרופיילינג הרציף פועל, אתם יכולים לצלם תמונת מצב כדי לשמור את הפרופיל האחרון בגודל 2GB מהמאגר המעגלי כסשן פרופיל בקטגוריה של Cloud Storage. אפשר ליצור קובץ snapshot באמצעות ה-CLI של gcloud או במסוף Google Cloud .
כשיוצרים תמונת מצב של פרופיילינג רציף, צריך לציין את הפרמטרים הבאים:
- יעדים: כל צומתי היעד או קבוצת משנה שלהם שבהם פועל פרופיילינג רציף:
- מסוףGoogle Cloud : כל הצמתים שהוגדרו לפרופיילינג רציף מאוכלסים באופן אוטומטי, ואפשר לבחור את כל הצמתים או קבוצת משנה שלהם.
- ה-CLI של gcloud: מציינים את כל יעדי ה-profiler שבהם פועל פרופיילינג רציף, או קבוצת משנה שלהם.
- Profiler session name: שם לסשן של תמונת המצב שצולמה.
אפשר לצלם תמונת מצב באמצעות ה-CLI של gcloud או במסוףGoogle Cloud .
CLI של gcloud
כדי לתעד תמונת מצב של פרופיילינג רציף באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה:
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
RUN_ID="RUN_ID"
gcloud alpha mldiagnostics profiler-session capture "SNAPSHOT_NAME" \
--machine-learning-run="${RUN_ID}" \
--location="${LOCATION}" \
--project="${PROJECT_ID}" \
--targets="TARGET_NODES" \
--kind=snapshot
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: האזור שבו נמצאת הרצת ה-ML. -
RUN_ID: המזהה של הרצת ה-ML. -
SNAPSHOT_NAME: שם לסשן הפרופיל שנוצר. -
TARGET_NODES: רשימה מופרדת בפסיקים של צומתי יעד שרוצים לתעד.
מסוףGoogle Cloud
כדי ליצור תמונת מצב של פרופיילינג רציף במסוף Google Cloud :
- במסוף Google Cloud , נכנסים אל Cluster Director או אל GKE > AI/ML > Run Diagnostics, בוחרים את הרצת ה-ML ופותחים את הכרטיסייה Profiles.
- בסרגל הפעולות העליון, לוחצים על צילום תמונת מצב.
- בחלונית Capture continuous profiling snapshot, מזינים שם לפרופיל, בוחרים את צומתי היעד ולוחצים על Submit.
תמונת המצב מופיעה בטבלה פרופילים. אם הקישור לא מופיע מיד, לוחצים על Refresh.
תיעוד אוטומטי של פרופילים ממעקב אחרי עומסי עבודה
בעזרת תיעוד פרופיל אוטומטי ממעקב אחרי עומסי עבודה, כלי האבחון מבוססי ה-ML מתעדים באופן אוטומטי פרופיל XProf כשמנתח הירידה בביצועים מדווח על מצב "bad", במקום להמתין שתפעילו באופן ידני תיעוד לפי דרישה אחרי שמתרחשת בעיה. אתם יכולים להגדיר תיעוד פרופילים אוטומטי כדי להפעיל תיעוד על פי דרישה, או אם מופעל תיעוד פרופילים רציף, תמונת מצב של תיעוד פרופילים רציף. התהליך הזה מאפשר לכם לאבחן את שורש הבעיה באמצעות פרופיל שנוצר בזמן האירוע.
הוראות להגדרה ודרישות מוקדמות מפורטות במאמר תיעוד פרופילים אוטומטי במסמכי התיעוד של מעקב אחרי עומסי עבודה.
ניתוח פרופיל של AI אקטיבי
ניתוח פרופילים באמצעות AI אקטיבי מנתח באופן אוטומטי פרופילים של ביצועי XProf שנלכדו בעומסי עבודה של TPU, ויוצר דוח ניתוח HTML מנתוני מעקב גולמיים של XProf. בעזרת מודלים של Gemini ב-Vertex AI, סוכן הניתוח מריץ כלי פרופיילינג של XProf, מסכם את צווארי הבקבוק בביצועים וממליץ על שינויים בקוד או בהגדרות. אחרי שמפעילים את ממשקי ה-API הנדרשים, כלי האבחון מבוסס ה-ML יוצר דוח ניתוח פרופיל של AI אקטיבי לכל פרופיל שמתועד בפלטפורמה.
ניתוח פרופילים באמצעות AI אקטיבי מתבצע בעזרת אותם כלים ויכולות בסיסיים כמו מאגר הסקילים של XProf בקוד פתוח.
במקום להשתמש בקובץ הסקיל ישירות או להתקין את ה-CLI של XProf שנדרש לסקיל בקוד פתוח, כלי האבחון של ML מייבא את ההטמעות של כלי ה-XProf הבסיסי כדי שהסוכן יוכל להפעיל אותן ישירות. כתוצאה מכך, פלט הניתוח ב-ML Diagnostics מקביל להרצת מיומנויות XProf בקוד פתוח עם XProf CLI בקובצי xplane מקומיים.
דרישות מוקדמות
לפני שמשתמשים בניתוח פרופילים באמצעות AI אקטיבי, צריך לבצע את שלבי ההגדרה הבאים בפרויקט ב- Google Cloud .
הפעלת ממשקי ה-API הנדרשים
מפעילים את Vertex AI API (aiplatform.googleapis.com) כדי שסוכן הניתוח יוכל להריץ מודלים של Gemini בפרויקט:
- Google Cloud מסוף: בספריית ה-API, מפעילים את Vertex AI API.
ה-CLI של gcloud: מריצים את הפקודה הבאה:
gcloud services enable aiplatform.googleapis.com
מתן תפקידים ב-IAM
מקצים לחשבון המשתמש אחד מהתפקידים הבאים של ניהול זהויות והרשאות גישה (IAM):
- Cluster Director Viewer (
roles/hypercomputecluster.viewer): הרשאת קריאה בלבד למשאבים של Cluster Director ו-ML Diagnostics, כולל דוחות ניתוח שנוצרו במסוף Google Cloud בקטע Run Diagnostics > Profiles. - תפקיד בהתאמה אישית (
hypercomputecluster.locations.analysis): כשמוסיפים את ההרשאה הזו לתפקיד בהתאמה אישית, היא מאפשרת לצפות בדוחות הניתוח שנוצרו במסוף Google Cloud בקטע Run Diagnostics > Profiles.
איך זה עובד
כשמסתיים תיעוד פרופיל פרוגרמטי, לפי דרישה, רציף או אוטומטי, משימת רקע מבודדת מריצה את תהליך העבודה הבא של ניתוח הנתונים בפרופיל XProf:
- איסוף נתונים נרחב: הפעלה של 15 כלי XProf במקביל כדי לאסוף תמונת מצב של תקינות המערכת, שכוללת את זמן השלב, ניצול החומרה, השימוש בזיכרון, גבולות ה-roofline, הפעולות האיטיות ביותר וחוסר היעילות של המהדר. בשלב הזה, זמני הריצה מנורמלים לפי שלב אימון, ופעולות תקינות מופרדות מצווארי בקבוק.
- בדיקה ממוקדת באמצעות AI: בדיקה של תמונת המצב שנאספה לגבי הבריאות. אם לעומס העבודה יש ניצול גבוה של משאבי המחשוב, תקורה נמוכה של תקשורת וזמן חוסר פעילות, וסיכון נמוך לחריגה מהזיכרון, הסוכן מדלג על קריאות API לכלי נוספות ויוצר דוח
OPTIMAL. אם מזוהים צווארי בקבוק, הנציג יוצר השערות ומריץ עד ארבע בדיקות מעקב ממוקדות באמצעות כלים נוספים של XProf כדי לבדוק את הפעולות שמסביב בתרשים החישוב, עיכובים בציר הזמן במארחים וליבות בהתאמה אישית. - יצירת דוחות: שילוב המדדים מ-XProf עם ניתוח שורש הבעיה והתיקונים המומלצים של סוכן ה-AI. הדוח שנוצר ב-
summary.htmlנשמר בקטגוריה של Cloud Storage ומוצג במסוףGoogle Cloud בקטע Run Diagnostics > Profiles.
תהליך העבודה הזה שומר על הפרטיות של נתוני הפרופיל והניתוח בפרויקט. מעקבי פרופילים גולמיים ודוחות HTML שנוצרו מאוחסנים בקטגוריה של Cloud Storage, וכל הקריאות למודל ה-AI עוברות דרך Vertex AI בפרויקט ב- Google Cloud .
כלי XProf
בטבלה הבאה מתוארים כלי ה-XProf שהסוכן מריץ במהלך הניתוח:
| קטגוריה | כלי XProf | תיאור |
|---|---|---|
| סקירה כללית של עומס העבודה ותזמון השלבים |
get_xprof_overview,
get_step_trace,
get_kpi_metrics,
get_device_information,
get_hosts,
get_utilization_viewer,
get_smart_suggestions
|
הכלים האלה פועלים במהלך איסוף נתונים רחב, והכלי
|
| Roofline והפעולות האיטיות ביותר |
get_roofline_model,
get_hlo_op_profile
|
הכלים האלה פועלים במהלך איסוף נתונים נרחב וחקירה ממוקדת של AI כדי לבדוק את הדברים הבאים:
|
| גלאים של חוסר יעילות בקומפיילר |
detect_layout_mismatch_copies,
detect_unfused_reshapes,
detect_unnecessary_convert_reduce,
list_hlo_modules
|
הכלים האלה פועלים במהלך איסוף נתונים נרחב כדי לבדוק את הדברים הבאים:
|
| זיכרון וסיכון ל-OOM |
get_memory_profile,
get_peak_allocations
|
הכלים האלה פועלים במהלך איסוף נתונים נרחב כדי לבדוק את הדברים הבאים:
|
| סייר תרשימי החישובים | get_hlo_neighborhood |
הכלי הזה פועל במהלך חקירה ממוקדת של AI כדי לבדוק את הפעולות שמתבצעות מיד לפני ואחרי פעולה איטית בתרשים XLA, ולזהות מה חוסם את המיזוג של הקומפיילר או מאלץ העברת נתונים. |
| ציר הזמן ותזמון הליבה (kernel) |
aggregate_xplane_events,
get_kernel_stats
|
הכלים האלה פועלים במהלך חקירת AI ממוקדת כדי לבדוק את הדברים הבאים:
|
| כלי מותאם אישית לניתוח ביצועים של ליבה |
llo_load,
llo_query
|
הכלים האלה פועלים במהלך חקירת AI ממוקדת כדי לבדוק עקבות ביצוע ברמה נמוכה של ליבות בהתאמה אישית, כמו Pallas או Mosaic, שנראות אטומות לפרופיילינג סטנדרטי ברמה גבוהה. |
דוח ניתוח פרופיל מ-AI
כשהניתוח של פרופיל מתועד מסתיים, כלי האבחון של ML שומר את דוח ה-summary.html שנוצר בקטגוריה של Cloud Storage ומציג אותו במסוף Google Cloud בקטע Run Diagnostics > Profiles. אתם יכולים להשתמש בדוח הזה כדי לבדוק את התקינות הכוללת של עומס העבודה, לבחון את צווארי הבקבוק העיקריים בביצועים ולזהות את השינויים המומלצים בקוד או בהגדרות.
כל דוח שנוצר כולל את הקטעים הבאים:
- סיכום הניתוח: הסטטוס הכולל של
OPTIMALאוNEEDS_ATTENTION, סיכום של 3 עד 5 משפטים ומדדי ביצועים עיקריים כמו זמן השלב, השימוש בזיכרון ויעילות ה-Roofline. - צווארי בקבוק בעדיפות גבוהה ותיקונים שאפשר לבצע: רשימת ממצאים לפי סדר עדיפות, מ-
P0לבעיות קריטיות ועדP2לבעיות קלות. כל ממצא כולל:- מה קורה: הסבר על שורש הבעיה, כולל צורות ופריסות של טנזורים, אם רלוונטי.
- הוכחה: ציטוטים ישירים של המדדים והפעולות של XProf שבהם נמדד צוואר הבקבוק.
- ההשפעה הצפויה והתיקון: משך הזמן או כמות הזיכרון שמושפעים, בשילוב עם שינויים מומלצים ב-framework, ב-sharding או בקומפיילר.
- ניתוח מפורט של כלי XProf: מספק נתונים תומכים ופירוט מהניתוחים הבאים:
- ניתוח Roofline
- ניתוח זיכרון
- ניתוח פרופיל הפעולה של High-Level Optimizer (HLO)
- נתונים סטטיסטיים של הפעלת הליבה (kernel)
- ניתוח של ליבה מותאמת אישית ושל אופטימיזציה ברמה נמוכה