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

בדף הזה מוסבר על GPUs ב-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.

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

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

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

מכסת GPU בחבילה

מכסת ה-GPU היא המספר המקסימלי של יחידות GPU שאפשר להריץ בGoogle Cloud פרויקט. כדי להשתמש ביחידות 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 עבור GPU Pods ב-Autopilot. מבצעים את השלבים שמתוארים במאמר הפעלת מעבדים גרפיים במאגרי צמתים רגילים:
  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 נפרדים למאגרי תמונות (containers) בצומת. כל מאגר תגים שמוקצה מקבל את המשאבים שזמינים לאותו מופע.

מעבדים גרפיים (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 clusters, ‏ 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 במסוף Google Cloud .

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

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

    כניסה לדף 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 במסוף Google Cloud כדי להציג באופן חזותי את עומסי העבודה של ה-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.

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