בדף הזה מתוארים מעבדים גרפיים ב-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 שיכולים לפעול בפרויקט
- ההבדלים בין מצב Autopilot למצב רגיל
- ניהול מחסנית ה-GPU באמצעות GKE או NVIDIA GPU Operator ב-GKE
- בחירת תכונות שיפחיתו את כמות משאבי ה-GPU שלא מנוצלים
- גישה לספריות NVIDIA CUDA-X לאפליקציות CUDA
- מעקב אחרי מדדים של צומתי GPU
- טיפול בשיבושים שנגרמים בגלל תחזוקת צמתים
- שימוש ב-GKE Sandbox לאבטחת עומסי עבודה ב-GPU
מודלים זמינים של 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 עם סוגי המכונות האלה:
- כדי לפרוס במהירות אשכולות GKE שמוכנים לייצור, צרו אשכול GKE שעבר אופטימיזציה ל-AI באמצעות Cluster Toolkit.
- כדי להתאים אישית או להרחיב סביבות ייצור קיימות של GKE, השתמשו ב-Google Cloud CLI כדי ליצור אשכול GKE. בוחרים אחת מההוראות הבאות, בהתאם לסוג המכונה ול-GPU שבהם רוצים להשתמש:
למידע על תמחור של 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 |
|
כל סוגי ה-GPU שנתמכים ב-Compute Engine |
| בחירת GPU | אתם מבקשים כמות וסוג של GPU במפרט של עומס העבודה. כברירת מחדל, מצב Autopilot מתקין את מנהל ההתקן שמוגדר כברירת מחדל לגרסת GKE הזו ומנהל את הצמתים. כדי לבחור גרסה ספציפית של מנהל התקן ב-Autopilot, קראו את המאמר בחירת מנהלי התקנים של NVIDIA לפודים של GPU ב-Autopilot. |
מבצעים את השלבים שמתוארים במאמר הפעלת GPUs במאגרי צמתים רגילים:
|
| שיפור השימוש ב-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, בוחרים באחת מהאפשרויות הבאות:
- פריסת עומסי עבודה של GPU ב-Autopilot
- הפעלת יחידות GPU במאגרי צמתים רגילים
- פריסת אשכולות עם מעבדי GPU מסוג NVIDIA B200 או NVIDIA H200 141GB
אפשר להשתמש ב-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 |
|
|
| מדדים וניראות |
|
|
אופטימיזציה של השימוש במשאבים באמצעות תכונות 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 וגרסאות תואמות של מנהלי התקנים.
באשכולות 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 של עומס העבודה:
-
נכנסים לדף Workloads במסוף Google Cloud .
כניסה לדף Workloads - בוחרים עומס עבודה.
בלוח הבקרה 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_interruptionskubernetes.io/jobset/times_to_recoverkubernetes.io/jobset/uptime
למידע נוסף על מדדי המערכת האלה, ראו מדדי Kubernetes.
אפשר גם להשתמש בלוח הבקרה של JobSet במסוף Google Cloud כדי להציג ולנטר את עומסי העבודה ב-GPU:
מדדי תקינות של צמתים
המדדים הבאים ברמת הצומת חלים על כל הצמתים, כולל אלה עם מעבדים גרפיים:
-
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.