מידע על יחידות GPU ב-Google Kubernetes Engine‏ (GKE)

בדף הזה מוסבר על יחידות GPU ב-Google Kubernetes Engine‏ (GKE), כדי לעזור לכם לבחור את תצורת ה-GPU האופטימלית לעומסי העבודה שלכם. אם אתם רוצים לפרוס עומסי עבודה של GPU באמצעות Slurm, כדאי לעיין במאמר יצירת אשכול Slurm שעבר אופטימיזציה ל-AI.

אתם יכולים להשתמש במעבדי GPU כדי להאיץ משימות שדורשות הרבה משאבים, כמו למידת מכונה ועיבוד נתונים. המידע בדף הזה יכול לעזור לכם לבצע את הפעולות הבאות:

  • לוודא שה-GPU זמין כשצריך.
  • מחליטים אם להשתמש ב-GPU באשכולות במצב GKE Autopilot או במצב GKE Standard.
  • כדי להשתמש ביכולות ה-GPU בצורה יעילה, בוחרים תכונות שקשורות ל-GPU.
  • מעקב אחרי מדדים של צומת GPU.
  • שיפור האמינות של עומסי העבודה של ה-GPU על ידי טיפול יעיל יותר בשיבושים.

הדף הזה מיועד לאדמינים ולמפעילים של פלטפורמות ולמהנדסי למידת מכונה (ML) שרוצים לוודא שתשתית המאיצים מותאמת לעומסי העבודה שלהם.

לפני שקוראים את הדף הזה, חשוב לוודא שמכירים את הנושאים הבאים:

בחירת GPU ב-GKE

ב-GKE, האופן שבו מבקשים חומרת GPU תלוי במצב שבו משתמשים – Autopilot או Standard. ב-Autopilot, אתם מבקשים חומרת GPU על ידי ציון משאבי GPU בעומסי העבודה. במצב GKE Standard, אפשר לצרף חומרת GPU לצמתים באשכולות, ואז להקצות משאבי GPU לעומסי עבודה מבוססי-קונטיינרים שפועלים בצמתים האלה. הוראות מפורטות לגבי צירוף יחידות GPU ושימוש בהן בעומסי עבודה מופיעות במאמרים פריסת עומסי עבודה של GPU ב-Autopilot או הפעלת יחידות GPU במאגרי צמתים רגילים.

‫GKE מציע כמה תכונות ספציפיות ל-GPU כדי לשפר את השימוש היעיל במשאבי GPU של עומסי עבודה שפועלים בצמתים, כולל שיתוף זמן, יחידות GPU מרובות מופעים ויחידות GPU מרובות מופעים עם NVIDIA MPS.

בדף הזה מוסבר על האפשרויות לבקשת יחידות GPU ב-GKE, כולל:

מודלים זמינים של GPU

חומרת ה-GPU שזמינה לשימוש ב-GKE היא קבוצת משנה של דגמי ה-GPU שזמינים ב-Compute Engine. החומרה הספציפית שזמינה תלויה באזור או בתחום של Compute Engine שבו נמצא האשכול. מידע נוסף על זמינות ספציפית זמין במאמר בנושא אזורים ותחומים של GPU.

סוגי המכונות עם הביצועים הכי טובים ב-Cloud de Confiance, כמו A4X Max,‏ A4X,‏ A4 ו-A3 Ultra, דורשים הגדרה ספציפית כדי למקסם את הביצועים של החומרה הבסיסית. פרטים על אופן ההגדרה של אשכולות GKE לשימוש בסוגי המכונות האלה של GPU מופיעים במסמכי התיעוד של AI Hypercomputer, שבהם מוסבר על היכולות של מערכת הסופר-קומפיוטר המשולבת שלCloud de Confiance.

מידע על יצירת אשכולות GKE שעברו אופטימיזציה ל-AI באמצעות סוגי המכונות האלה זמין במאמרים הבאים:

למידע על תמחור של יחידות GPU, אפשר לעיין בCloud de Confiance by S3NS מק"טים ובדף התמחור של יחידות GPU.

מכסת GPU בחבילה

מכסת ה-GPU היא המספר המקסימלי של יחידות GPU שאפשר להריץ בCloud de Confiance פרויקט. כדי להשתמש ב-GPU באשכולות GKE, בפרויקט שלכם צריכה להיות מכסת GPU מספקת. כדי לוודא שיש לכם מספיק יחידות GPU זמינות בפרויקט, בודקים את הדף 'מכסות'.

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

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

כדי לבקש מכסת GPU נוספת, פועלים לפי ההוראות לבקשת שינוי מכסה, ומשתמשים בערך gpus כמדד.

בחירת תמיכה ב-GPU באמצעות Autopilot או Standard

ה-GPU זמין באשכולות של Autopilot ושל Standard.

שיטה מומלצת:

מומלץ להשתמש באשכולות במצב Autopilot כדי ליהנות מחוויית Kubernetes מנוהלת לחלוטין. ב-Autopilot,‏ GKE מנהל את התקנת מנהלי ההתקנים, את שינוי הגודל של הצמתים, את הבידוד של ה-Pod ואת הקצאת הצמתים.

בטבלה הבאה מפורטים ההבדלים בין Autopilot לבין תמיכה רגילה ב-GPU:

תיאור טייס אוטומטי רגילה
בקשת חומרת GPU מציינים משאבי GPU בעומסי העבודה. מצרפים חומרת GPU לצמתים באשכולות, ואז מקצים משאבי GPU לעומסי עבודה מבוססי-קונטיינרים שפועלים בצמתים האלה.
זמינות של חומרת GPU
  • NVIDIA GB300
  • NVIDIA GB200
  • NVIDIA B200
  • NVIDIA H200 141GB
  • NVIDIA H100 80GB
  • NVIDIA A100 80GB
  • NVIDIA A100 40GB
  • NVIDIA RTX PRO 6000
  • NVIDIA L4
  • NVIDIA T4
כל סוגי ה-GPU שנתמכים על ידי Compute Engine
בחירת GPU מבקשים כמות וסוג של GPU במפרט של עומס העבודה. כברירת מחדל, Autopilot מתקין את מנהל ההתקן שמוגדר כברירת המחדל עבור גרסת GKE ומנהל את הצמתים. כדי לבחור גרסה ספציפית של דרייבר ב-Autopilot, אפשר לעיין במאמר בחירת דרייברים של NVIDIA עבור Autopilot GPU Pods. מבצעים את השלבים שמתוארים במאמר הפעלת יחידות GPU במאגרי צמתים רגילים:
  1. יוצרים מאגר צמתים עם סוג ה-GPU הספציפי וסוג המכונה התואם ב-Compute Engine, ובוחרים מנהל התקן להתקנה.
  2. אם לא השתמשתם בהתקנה אוטומטית, אתם צריכים להתקין ידנית את מנהלי ההתקנים של ה-GPU בצמתים.
  3. מבקשים כמות של יחידות GPU במפרט של ה-Pod.
שיפור השימוש ב-GPU
אבטחה
תמחור תמחור של פודים עם GPU במצב Autopilot המחירון של מעבדים גרפיים (GPU) ב-Compute Engine

כדי לבחור את מצב הפעולה של GKE שהכי מתאים לעומסי העבודה שלכם, אפשר לעיין במאמר בחירת מצב פעולה של GKE.

שימוש ב-GPU

‫GKE מציע אפשרויות שונות לשימוש ב-GPU, בהתאם לדרישות עומס העבודה שלכם. כדי לבחור את האפשרות הכי טובה לתרחיש השימוש שלכם, תוכלו לעיין בדף מידע על אפשרויות הצריכה של מאיצים לעומסי עבודה של AI/ML ב-GKE.

ניהול מחסנית ה-GPU דרך GKE או NVIDIA GPU Operator ב-GKE

כברירת מחדל, GKE מנהל את כל מחזור החיים של צמתי ה-GPU, כולל התקנה אוטומטית של מנהלי התקנים (דרייברים) של GPU, מעקב אחר עומסי עבודה של GPU ב-GKE באמצעות NVIDIA Data Center GPU Manager (DCGM) ואסטרטגיות לשיתוף GPU.

שיטה מומלצת:

מומלץ להשתמש ב-GKE כדי לנהל את צמתי ה-GPU, כי GKE מנהל באופן מלא את מחזור החיים של צמתי ה-GPU.

כדי להתחיל להשתמש ב-GKE לניהול צמתים של GPU, בוחרים באחת מהאפשרויות הבאות:

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

כדי לבחור את האפשרות הכי מתאימה לתרחיש השימוש שלכם, אפשר להיעזר בטבלה הבאה שמשווה בין שתי השיטות לניהול צמתי GPU ב-GKE.

תיאור שימוש ב-GKE לניהול צומתי GPU שימוש ב-NVIDIA GPU Operator ב-GKE
ניהול מחזור החיים של צומת GPU (התקנה, שדרוג) מנוהל באופן מלא על ידי GKE. מנוהל על ידי המשתמש.
התקנת מנהל התקן התקנה אוטומטית וידנית של דרייברים ל-GPU. התקנה ידנית של דרייברים של GPU.
בוררי צמתים cloud.google.com/gke-gpu=true nvidia.com/gpu=true
שיטות לשיתוף GPU
  • שירות מרובה תהליכים: לא נתמך.
בדיקת תקינות של צמתי GPU
  • הפעלת תיקון צומת תוך 15 דקות אם מספר ה-GPU שניתן להקצאה לא שווה לקיבולת והתיקון האוטומטי מופעל.
  • מעקב אחרי כל קודי השגיאה כברירת מחדל.
  • הפעלת תיקון צומת תוך 15 דקות אם מספר ה-GPU שניתן להקצאה לא שווה לקיבולת והתיקון האוטומטי מופעל.
מדדים וניראות
  • אם מפעילים את מדדי המערכת, מדדי ה-GPU הבאים זמינים ב-Cloud Monitoring: מחזור פעילות, ניצול הזיכרון וקיבולת הזיכרון.
  • ‫DCGM בניהול עצמי מסופק על ידי GPU operator.
  • גם אם מדדי המערכת של GKE GPU מופעלים, לא נאספים מדדי מערכת שקשורים ל-GPU, כולל מחזור פעולה, שימוש בזיכרון וקיבולת זיכרון.

אופטימיזציה של השימוש במשאבים באמצעות תכונות GPU ב-GKE

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

התכונות הבאות זמינות ב-GKE כדי לצמצם את כמות משאבי ה-GPU שלא מנוצלים:

תכונות של GPU
מעבדים גרפיים מרובי-מופעים

האפשרות זמינה בתוכניות: Autopilot ו-Standard

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

מעבדים גרפיים (GPU) עם שיתוף זמן

האפשרות זמינה בתוכניות: Autopilot ו-Standard

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

NVIDIA MPS

התכונה זמינה בתוכנית: Standard

שיתוף של GPU פיזי יחיד של NVIDIA בין כמה קונטיינרים. ‫NVIDIA MPS היא הטמעה חלופית של CUDA API, שתואמת לבינארי, ומיועדת להפעלה שקופה של אפליקציות CUDA מרובות תהליכים במקביל במכשיר GPU יחיד.

גישה לספריות NVIDIA CUDA-X לאפליקציות CUDA

CUDA היא פלטפורמת מחשוב מקבילי ומודל תכנות של NVIDIA למעבדי GPU. כדי להשתמש באפליקציות CUDA, התמונה שבה אתם משתמשים צריכה לכלול את הספריות. כדי להוסיף את ספריות NVIDIA CUDA-X, אפשר ליצור ולהשתמש באימג' משלכם על ידי הכללת הערכים הבאים במשתנה הסביבה LD_LIBRARY_PATH במפרט הקונטיינר:

  • /usr/local/nvidia/lib64: המיקום של מנהלי ההתקנים (דרייברים) של NVIDIA.
  • /usr/local/cuda-CUDA_VERSION/lib64: המיקום של ספריות NVIDIA CUDA-X בצומת.

    מחליפים את CUDA_VERSION בגרסת אימג' של CUDA-X שבה השתמשתם. חלק מהגרסאות מכילות גם כלי עזר לניפוי באגים בתיקייה /usr/local/nvidia/bin. פרטים נוספים זמינים במאמר בנושא התמונה של NVIDIA CUDA ב-DockerHub.

    כדי לבדוק את הגרסה המינימלית של מנהל ההתקן של GPU שנדרשת לגרסה של CUDA, אפשר לעיין במאמר CUDA Toolkit and Compatible Driver Versions.

מוודאים שגרסת התיקון של GKE שפועלת בצמתים כוללת גרסה של מנהל התקן של GPU שתואמת לגרסת CUDA שבחרתם. מידע נוסף על מיפוי של גרסת מנהל ההתקן של ה-GPU לגרסת GKE זמין במאמר מיפוי של גרסת GKE וגרסת קובץ האימג' של הצומת של מערכת ההפעלה שמותאמת לקונטיינרים לגרסת מנהל ההתקן של ה-GPU.

באשכולות Autopilot, ‏ GKE מנהל את הבחירה וההתקנה של גרסת הדרייבר.

מעקב אחר ביצועי עומס העבודה של צומת GPU

אם באשכול GKE שלכם מופעלים מדדי מערכת, המדדים הבאים זמינים ב-Cloud Monitoring כדי לעקוב אחרי ביצועי עומס העבודה של ה-GPU:

  • מחזור פעולה (container/accelerator/duty_cycle): אחוז הזמן במהלך תקופת הדגימה האחרונה (10 שניות) שבה המאיץ עיבד באופן פעיל. בין 1 ל-100.
  • השימוש בזיכרון (container/accelerator/memory_used): כמות הזיכרון של המאיץ שהוקצתה בבייטים.
  • נפח הזיכרון (container/accelerator/memory_total): סך כל הזיכרון של המאיץ בבייטים.

המדדים האלה חלים ברמת הקונטיינר (container/accelerator) ולא נאספים עבור קונטיינרים שמתוזמנים ב-GPU שמשתמש בשיתוף זמן GPU או ב-NVIDIA MPS.

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

הצגת מדדי השימוש בעומסי עבודה

אפשר לראות את מדדי השימוש ב-GPU של עומסי העבודה בלוח הבקרה Workloads במסוף Cloud de Confiance .

כדי לראות את השימוש ב-GPU בעומס העבודה:

  1. נכנסים לדף Workloads במסוף Cloud de Confiance .

    כניסה לדף Workloads
  2. בוחרים עומס עבודה.

בלוח הבקרה Workloads מוצגים תרשימים של השימוש בזיכרון ה-GPU והקיבולת שלו, ושל הדיוק סייקל (Duty cycle) של ה-GPU.

צפייה במדדים של NVIDIA Data Center GPU Manager‏ (DCGM)

אפשר לאסוף ולהציג מדדים של NVIDIA DCGM באמצעות השירות המנוהל של Google Cloud ל-Prometheus. באשכולות Autopilot, ‏ GKE מתקין את מנהלי ההתקנים. במקרים של אשכולות Standard, צריך להתקין את מנהלי ההתקנים (דרייברים) של NVIDIA.

הוראות לפריסת חבילת DCGM בניהול GKE זמינות במאמר בנושא איסוף מדדים של NVIDIA Data Center GPU Manager (DCGM) והצגתם.

מדדי בריאות של צמתים ושל JobSet לעומסי עבודה של GPU

בנוסף למדדים של DCGM, אתם יכולים להשתמש במדדים הבאים כדי לעקוב אחרי התקינות והביצועים של עומסי העבודה של ה-GPU, במיוחד כשמריצים אותם כ-JobSets.

מדדים של JobSet

המדדים הבאים חלים על מערכי משימות של GPU ו-TPU שיש להם משימה אחת משוכפלת:

  • kubernetes.io/jobset/times_between_interruptions
  • kubernetes.io/jobset/times_to_recover
  • kubernetes.io/jobset/uptime

מידע נוסף על מדדי המערכת האלה זמין במאמר בנושא מדדי Kubernetes.

אפשר גם להשתמש בלוח הבקרה JobSet במסוף Cloud de Confiance כדי להציג באופן חזותי את עומסי העבודה של ה-GPU ולעקוב אחריהם:

מעבר לדף Deployments

מדדי הבריאות של הצומת

המדדים הבאים ברמת הצומת רלוונטיים לכל הצמתים, כולל צמתים עם GPU:

  • kubernetes.io/node/status_condition: המדד הזה דורש GKE גרסה ‎1.32.1-gke.1357001 ואילך.

מדדים של הפרעה בצומת והפרעה במאגר צמתים חלים גם על צמתים שאינם TPU.

‫Kube-state-metrics ל-JobSets

אפשר להשתמש ב-kube-state-metrics עבור JobSets עם יחידות GPU. כדי לאסוף את המדדים האלה, צריך להשתמש ב-GKE בגרסה 1.32.1-gke.1357001 ואילך. מידע נוסף זמין במאמרי העזרה בנושא מדדים של JobSet.

התמודדות עם שיבושים בגלל תחזוקת צמתים

הנודים של GKE שמארחים את ה-GPU כפופים לאירועי תחזוקה או לשיבושים אחרים שעלולים לגרום לכיבוי הנוד. באשכולות GKE עם מישור הבקרה שפועלת בהם גרסה 1.29.1-gke.1425000 ואילך, אפשר לצמצם את השיבושים בעומסי העבודה על ידי הגדרת GKE להפסקת עומסי העבודה בצורה מסודרת.

כדי להבין, להגדיר ולנטר אירועי שיבוש שעשויים להתרחש בצמתי GKE שמריצים עומסי עבודה של AI/ML, אפשר לעיין במאמר ניהול שיבושים בצמתי GKE עבור מעבדי GPU ו-TPU.

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