בדף הזה מוסבר איך לפתור בעיות במכונות וירטואליות שפועלות ב-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הפעלת האבחון, אתם יכולים לפתוח בקשת תמיכה. כשפותחים בקשת תמיכה, צריך לספק את הפרטים הבאים:
- הפקודה שהופעלה והפלט שהוחזר.
קובצי יומן רלוונטיים, כמו יומני אבחון ומנוע המארח. כדי לאסוף את קובצי היומן הנדרשים, אפשר להריץ את הסקריפט
gather-dcgm-logs.sh.במערכות מבוססות-Debian ו-RPM, הסקריפט הזה נמצא בתיקייה
/usr/local/dcgm/scripts.במקרים של כשלים ב-
dcgmi diag, צריך לספק את קובצי הנתונים הסטטיסטיים של הפלאגינים שנכשלו. קובץ הנתונים הסטטיסטיים נקרא לפי המוסכמה הבאה:stats_PLUGIN_NAME.json.לדוגמה, אם התוסף
pcieנכשל, צריך לכלול את הקובץ בשםstats_pcie.json.פרטי המערכת של NVIDIA ומצב הדרייבר. כדי לאסוף את המידע הזה, אפשר להריץ את הסקריפט
nvidia-bug-report.sh. אם אתם משתמשים במופע עם Blackwell GPUs, אתם יכולים לפעול לפי ההוראות במאמר יצירת דוח באגים של NVIDIA עבור Blackwell GPUs כדי לקבל דוח באגים מקיף.הפעלת הסקריפט הזה עוזרת גם בניפוי באגים נוסף אם הבעיה נגרמת על ידי תלות אחרת של NVIDIA ולא באג ב-DCGM עצמו.
פרטים על שינויים שבוצעו לאחרונה בסביבה לפני הכשל.
הודעות 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 |
|
Xid 63: ECC page retirement or row remapping recording
event |
|
Xid 64: ECC page retirement or row remapper recording
failure
ההודעה מכילה את הפרטים הבאים: Xid 64: All reserved rows for bank are remapped
|
|
אם תקבלו לפחות שתיים מההודעות הבאות של Xid ביחד:
ההודעה מכילה את הפרטים הבאים: Xid XX: row remap pending
|
|
Xid 92: High single-bit ECC error rate |
הודעת ה-Xid הזו מוחזרת אחרי שהדרייבר של ה-GPU מתקן שגיאה שניתנת לתיקון, והיא לא אמורה להשפיע על עומסי העבודה שלכם. ההודעה Xid היא לידיעה בלבד. לא נדרשת כל פעולה מצידך. |
Xid 94: Contained ECC error |
|
Xid 95: Uncontained ECC error |
|
שגיאות GSP
מעבד מערכת GPU (GSP) הוא מיקרו-בקר שפועל ב-GPU ומטפל בחלק מהפונקציות של ניהול החומרה ברמה נמוכה.
| הודעת שגיאה של Xid | הפתרון |
|---|---|
Xid 119: GSP RPC timeout |
|
Xid 120: GSP error |
שגיאות של גישה לא חוקית לזיכרון
מזהי ה-X הבאים מוחזרים כשיש לאפליקציות בעיות בגישה לא חוקית לזיכרון:
Xid 13: Graphics Engine ExceptionXid 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 |
|
Xid 79: GPU has fallen off the bus
המשמעות היא שהדרייבר לא יכול לתקשר עם ה-GPU. |
מפעילים מחדש את ה-VM. |
Xid 149 שכולל את המילה 0x02a, כמו בדוגמה הבאה:
ההודעה הזו מצביעה על בעיה מוכרת שמשפיעה על קושחה של מעבדי GPU מסוג NVIDIA B200. |
|
איפוס יחידות 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 בצומת. כדי להשתמש בכלי הזה, צריך רק לציין את שם צומת היעד.
- ברוב מכונות ה-VM של Linux, קובץ ההפעלה
לחלופין, אפשר גם לאפס את ה-GPU כשמאפסים מכונת VM או כשמפעילים מחדש מכונת VM.
אם השגיאות ממשיכות להופיע אחרי איפוס ה-GPU, צריך למחוק את המכונה הווירטואלית וליצור אותה מחדש.
אם השגיאה נמשכת אחרי מחיקה ויצירה מחדש, צריך לפתוח פנייה אל Cloud Customer Care כדי להעביר את המכונה הווירטואלית אל שלב התיקון.
המאמרים הבאים
קוראים את המאמר בנושא סוגי מכונות עם GPU.