פתרון בעיות ב-GPU VMs

בדף הזה מוסבר איך לפתור בעיות במכונות וירטואליות שפועלות ב-Compute Engine ומצורפים אליהן מעבדים גרפיים (GPU).

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

פתרון בעיות במכונות וירטואליות עם GPU באמצעות NVIDIA DCGM

‫NVIDIA Data Center GPU Manager (DCGM) היא חבילת כלים לניהול ולמעקב אחרי יחידות GPU של NVIDIA במרכזי נתונים בסביבות אשכולות.

כדי להשתמש ב-DCGM לפתרון בעיות בסביבת ה-GPU, מבצעים את הפעולות הבאות:

  • מוודאים שאתם משתמשים בדרייבר המומלץ העדכני ביותר של NVIDIA עבור דגם ה-GPU שמצורף ל-VM. כדי לבדוק את גרסאות הדרייברים, אפשר לעיין במאמר בנושא גרסאות מומלצות של דרייברים של NVIDIA.
  • מוודאים שהתקנתם את הגרסה האחרונה של DCGM. כדי להתקין את הגרסה העדכנית, אפשר לעיין במאמר התקנת DCGM.

אבחון בעיות

כשמריצים dcgmi פקודת אבחון, הבעיות שמדווחות בכלי האבחון כוללות את השלבים הבאים לטיפול בבעיה. בדוגמה הבאה אפשר לראות את הפלט שניתן לפעולה מהפקודה dcgmi diag -r memory -j.

{
  ........
   "category":"Hardware",
   "tests":[
      {
         "name":"GPU Memory",
         "results":[
            {
               "gpu_id":"0",
               "info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
               "status":"Fail",
               ""warnings":[
                  {
                     "warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
                     "error_id":83,
                     "error_category":10,
                     "error_severity":6
                  }
               ]
            }
  .........

מקטע הפלט הקודם אפשר לראות של-GPU 0 יש הוצאות משימוש של דפים בהמתנה שנגרמות משגיאה שלא ניתן לתקן. הפלט סיפק את המזהה הייחודי error_id וייעוץ לניפוי הבאגים בבעיה. בדוגמה הזו של הפלט, מומלץ לנקז את ה-GPU ולהפעיל מחדש את ה-VM. ברוב המקרים, פעולה לפי ההוראות בקטע הזה של הפלט יכולה לעזור לפתור את הבעיה.

פתיחת בקשת תמיכה

אם לא הצלחתם לפתור את הבעיות באמצעות ההנחיות שמופיעות בתוצאות של dcgmiהפעלת האבחון, אתם יכולים לפתוח בקשת תמיכה. כשפותחים בקשת תמיכה, צריך לספק את הפרטים הבאים:

  1. הפקודה שהופעלה והפלט שהוחזר.
  2. קובצי יומן רלוונטיים, כמו יומני אבחון ומנוע המארח. כדי לאסוף את קובצי היומן הנדרשים, אפשר להריץ את הסקריפט gather-dcgm-logs.sh.

    במערכות מבוססות-Debian ו-RPM, הסקריפט הזה נמצא בתיקייה /usr/local/dcgm/scripts.

  3. במקרים של כשלים ב-dcgmi diag, צריך לספק את קובצי הנתונים הסטטיסטיים של הפלאגינים שנכשלו. קובץ הנתונים הסטטיסטיים נקרא לפי המוסכמה הבאה: stats_PLUGIN_NAME.json.

    לדוגמה, אם התוסף pcie נכשל, צריך לכלול את הקובץ בשם stats_pcie.json.

  4. פרטי המערכת של NVIDIA ומצב הדרייבר. כדי לאסוף את המידע הזה, אפשר להריץ את הסקריפט nvidia-bug-report.sh. אם אתם משתמשים במופע עם Blackwell GPUs, אתם יכולים לפעול לפי ההוראות במאמר יצירת דוח באגים של NVIDIA עבור Blackwell GPUs כדי לקבל דוח באגים מקיף.

    הפעלת הסקריפט הזה עוזרת גם בניפוי באגים נוסף אם הבעיה נגרמת על ידי תלות אחרת של NVIDIA ולא באג ב-DCGM עצמו.

  5. פרטים על שינויים שבוצעו לאחרונה בסביבה לפני הכשל.

הודעות Xid

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

הודעת Xid היא דוח שגיאה מדרייבר NVIDIA שמוצג ביומן של ליבת מערכת ההפעלה או ביומן האירועים של מכונת ה-VM שלכם ב-Linux. ההודעות האלה ממוקמות בקובץ /var/log/messages.

למידע נוסף על הודעות Xid, כולל סיבות אפשריות, אפשר לעיין במסמכי התיעוד של NVIDIA.

בקטע הבא מפורטות הנחיות לטיפול בהודעות Xid מסוימות שמקובצות לפי הסוגים הנפוצים ביותר: שגיאות בזיכרון של GPU, שגיאות במעבד המערכת של GPU ‏ (GSP) ושגיאות בגישה לא חוקית לזיכרון.

שגיאות בזיכרון ה-GPU

זיכרון GPU הוא הזיכרון שזמין ב-GPU ואפשר להשתמש בו לאחסון זמני של נתונים. הזיכרון של ה-GPU מוגן באמצעות קוד לתיקון שגיאות (ECC), שמזהה ומתקן שגיאות של ביט יחיד (SBE) ומזהה ומדווח על שגיאות של ביט כפול (DBE).

לפני ההשקה של מעבדי ה-GPU‏ NVIDIA A100, הייתה תמיכה בהוצאה משימוש של דפים דינמיים. למעבדי GPU של NVIDIA A100 ואילך (כמו NVIDIA H100), נוסף תיקון שגיאות של מיפוי שורות. התכונה ECC מופעלת כברירת מחדל. ‫Google ממליצה מאוד להשאיר את ECC מופעל.

ריכזנו כאן שגיאות נפוצות שקשורות לזיכרון של מעבד ה-GPU והצעות לפתרון שלהן.

הודעת שגיאה של Xid הפתרון
Xid 48: Double Bit ECC
  1. מפסיקים את עומסי העבודה.
  2. מוחקים ויוצרים מחדש את ה-VM. אם השגיאה נמשכת, צריך לפתוח פנייה אל Cloud Customer Care.
Xid 63: ECC page retirement or row remapping recording event
  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU.
Xid 64: ECC page retirement or row remapper recording failure

ההודעה מכילה את הפרטים הבאים:

Xid 64: All reserved rows for bank are remapped
  1. מפסיקים את עומסי העבודה.
  2. מוחקים ויוצרים מחדש את ה-VM. אם השגיאה נמשכת, צריך לפתוח פנייה אל Cloud Customer Care.

אם תקבלו לפחות שתיים מההודעות הבאות של Xid ביחד:

  • Xid 48
  • Xid 63
  • Xid 64

ההודעה מכילה את הפרטים הבאים:

Xid XX: row remap pending
  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU. איפוס ה-GPU מאפשר להשלים את תהליך המיפוי מחדש של השורה והוצאת הדף משימוש, ולתקן את ה-GPU.
Xid 92: High single-bit ECC error rate הודעת ה-Xid הזו מוחזרת אחרי שהדרייבר של ה-GPU מתקן שגיאה שניתנת לתיקון, והיא לא אמורה להשפיע על עומסי העבודה שלכם. ההודעה Xid היא לידיעה בלבד. לא נדרשת כל פעולה מצידך.
Xid 94: Contained ECC error
  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU.
Xid 95: Uncontained ECC error
  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU.

שגיאות GSP

מעבד מערכת GPU (GSP) הוא מיקרו-בקר שפועל ב-GPU ומטפל בחלק מהפונקציות של ניהול החומרה ברמה נמוכה.

הודעת שגיאה של Xid הפתרון
Xid 119: GSP RPC timeout
  1. מפסיקים את עומסי העבודה.
  2. מוחקים ויוצרים מחדש את ה-VM. אם השגיאה נמשכת, צריך לאסוף את דוח הבאגים של NVIDIA ולפתוח פנייה אל Cloud Customer Care.
Xid 120: GSP error

שגיאות של גישה לא חוקית לזיכרון

מזהי ה-X הבאים מוחזרים כשיש לאפליקציות בעיות בגישה לא חוקית לזיכרון:

  • Xid 13: Graphics Engine Exception
  • Xid 31: GPU memory page fault

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

כדי לפתור את הבעיה, צריך לבצע ניפוי באגים באפליקציה. כדי לנפות באגים באפליקציה, אפשר להשתמש ב-cuda-memcheck וב-CUDA-GDB.

במקרים נדירים מאוד, שחיקה של החומרה עלולה לגרום להחזרת שגיאות של גישה לא חוקית לזיכרון. כדי לזהות אם הבעיה היא בחומרה, אפשר להשתמש בNVIDIA Data Center GPU Manager (DCGM). אפשר להריץ את הפקודות dcgmi diag -r 3 או dcgmi diag -r 4 כדי להריץ רמות שונות של כיסוי בדיקות ומשך בדיקות. אם זיהיתם שהבעיה היא בחומרה, תוכלו לפתוח בקשת תמיכה ב-Cloud Customer Care.

הודעות שגיאה נפוצות אחרות שקשורות ל-Xid

הודעת שגיאה של Xid הפתרון
Xid 74: NVLINK error
  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU.
Xid 79: GPU has fallen off the bus

המשמעות היא שהדרייבר לא יכול לתקשר עם ה-GPU.

מפעילים מחדש את ה-VM.
Xid 149 שכולל את המילה 0x02a, כמו בדוגמה הבאה:
Xid (PCI:0000:c0:00): 149,NETIR_LINK_EVT Fatal XC0 i0 Link 04 (0x02a485c6 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000)

ההודעה הזו מצביעה על בעיה מוכרת שמשפיעה על קושחה של מעבדי GPU מסוג NVIDIA B200.

  1. מפסיקים את עומסי העבודה.
  2. מאפסים את יחידות ה-GPU.

איפוס יחידות GPU

יכול להיות שתצטרכו לאפס את יחידות העיבוד הגרפי (GPU) כדי לפתור בעיות מסוימות. כדי לאפס את יחידות ה-GPU:

  • במכונות וירטואליות מסוג N1,‏ G2 ו-A2, מפעילים מחדש את ה-VM.
  • למכונות וירטואליות מסוג A3 ו-A4, מריצים את הפקודה sudo nvidia-smi --gpu-reset.
    • ברוב מכונות ה-VM של Linux, קובץ ההפעלה nvidia-smi נמצא בספרייה /var/lib/nvidia/bin.
    • בצומתי GKE, קובץ ההפעלה nvidia-smi נמצא בספרייה /home/kubernetes/bin/nvidia.
    • אם אתם משתמשים בצמתי GKE, אתם יכולים להשתמש בכלי לאיפוס GPU כדי לאפס אוטומטית את כל ה-GPU בצומת. כדי להשתמש בכלי הזה, צריך רק לציין את שם צומת היעד.

לחלופין, אפשר גם לאפס את ה-GPU כשמאפסים מכונת VM או כשמפעילים מחדש מכונת VM.

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

אם השגיאה נמשכת אחרי מחיקה ויצירה מחדש, צריך לפתוח פנייה אל Cloud Customer Care כדי להעביר את המכונה הווירטואלית אל שלב התיקון.

המאמרים הבאים

קוראים את המאמר בנושא סוגי מכונות עם GPU.