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

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

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

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

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

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

בחירת GPU ב-GKE

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

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

בדף הזה מפורטות האפשרויות לבקשת מעבדים גרפיים ב-GKE, כולל:

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

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

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

במאמרים הבאים מוסבר איך ליצור אשכולות GKE שמותאמים ל-AI עם סוגי המכונות האלה:

למידע על תמחור של GPU, קראו את המאמר Google Cloud SKUs ואת דף התמחור של GPU.

תכנון מכסת ה-GPU

מכסת ה-GPU היא המספר המקסימלי של מעבדי GPU שיכולים לפעול בפרויקט ב-Google Cloud . כדי להשתמש במעבדים גרפיים באשכולות GKE, לפרויקט צריכה להיות מכסה מספיקה של מעבדים גרפיים. בדקו את הדף Quotas כדי לוודא שיש לכם מספיק מעבדי GPU זמינים בפרויקט.

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

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

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

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

מעבדי GPU זמינים באשכולות Autopilot ובאשכולות Standard.

שיטה מומלצת:

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

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

תיאור טייס אוטומטי רגילה
בקשת חומרת 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 ב-Autopilot. מבצעים את השלבים שמתוארים במאמר הפעלת GPUs במאגרי צמתים רגילים:
  1. יוצרים מאגר צמתים עם סוג ה-GPU הספציפי וסוג המכונה התואם של Compute Engine, ובוחרים מנהל התקן להתקנה.
  2. אם לא השתמשתם בהתקנה אוטומטית, התקינו באופן ידני את מנהלי ההתקנים של ה-GPU בצמתים.
  3. מבקשים כמויות של GPU במפרט של Pod.
שיפור השימוש ב-GPU
אבטחה
תמחור תמחור של Pod עם 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.

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

אפשר להשתמש ב-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 שניתן להקצות לא שווה לקיבולת, והתיקון האוטומטי מופעל.
  • מעקב אחרי כל קודי השגיאה כברירת מחדל.
  • אם מספר הצמתים שניתן להקצות ל-GPU לא שווה לקיבולת והתיקון האוטומטי מופעל, מפעילים תיקון צמתים תוך 15 דקות.
מדדים וניראות
  • אם הפעלתם את מדדי המערכת, מדדי ה-GPU הבאים זמינים ב-Cloud Monitoring: מחזור פעילות, שימוש בזיכרון וקיבולת הזיכרון.
  • ‫DCGM בניהול עצמי שסופק על ידי מפעיל ה-GPU.
  • גם כשמדדי המערכת של GKE GPU מופעלים, מדדי המערכת שקשורים ל-GPU לא נאספים, כולל מחזור פעילות, שימוש בזיכרון וקיבולת הזיכרון.

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

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

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

תכונות GPU
מעבדים גרפיים עם כמה מופעים במקביל

זמין ב: Autopilot ו-Standard

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

מעבדי GPU עם שיתוף זמן

זמין ב: Autopilot ו-Standard

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

NVIDIA MPS

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

לשתף מעבד גרפי פיזי אחד של 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 וגרסאות תואמות של מנהלי התקנים.

חשוב לוודא שגרסת התיקון של 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): כמות הזיכרון של המאיץ שהוקצתה, בבייטים.
  • ‫Memory Capacity (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, הקיבולת של ה-GPU ומחזור העבודה של ה-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

המדדים הבאים רלוונטיים גם ל-JobSets של GPU וגם ל-JobSets של TPU עם Job משוכפל אחד:

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

למידע נוסף על מדדי המערכת האלה, ראו מדדי Kubernetes.

אפשר גם להשתמש בלוח הבקרה של JobSet במסוף Google Cloud כדי להציג ולנטר את עומסי העבודה ב-GPU:

מעבר אל Deployments

מדדי תקינות של צמתים

המדדים הבאים ברמת הצומת חלים על כל הצמתים, כולל אלה עם מעבדים גרפיים:

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

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

‫Kube-state-metrics ל-JobSets

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

טיפול בשיבושים שנגרמים בגלל תחזוקת צמתים

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

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

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