מידע על אפשרויות צריכת מאיצים לעומסי עבודה של AI/ML ב-GKE

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

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

מידע נוסף על תפקידים נפוצים ועל משימות לדוגמה שאנחנו מתייחסים אליהן בתוכן של Cloud de Confiance by S3NS , זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE.

הסבר על אפשרויות הצריכה

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

  • על פי דרישה: אתם משתמשים במעבדי TPU או GPU ב-GKE בלי לתכנן מראש את הקיבולת. לפני שמבקשים משאבים, צריך לוודא שיש לכם מספיק מכסה על פי דרישה לסוג ולכמות הספציפיים של המאיצים. צריכה על פי דרישה היא האפשרות הגמישה ביותר, אבל אין ערובה לכך שיהיו מספיק משאבים על פי דרישה כדי למלא את הבקשה שלכם.
  • הזמנות: אתם מזמינים משאבים לתקופה מוגדרת. הזמנה יכולה להיות כל אחת מהאפשרויות הבאות:
    • מקומות שמורים לעתיד: אתם משריינים משאבים לפרקי זמן ארוכים יותר, בדרך כלל, למועד ספציפי בעתיד. יש לכם גישה בלעדית למשאבים המוזמנים למשך התקופה הזו. מקום שמור לעתיד דורש מעורבות עם מנהל חשבונות טכני (TAM). מידע נוסף זמין במאמרים בנושא TPU ו-GPU.
    • מקום שמור לעתיד לפרק זמן של עד 90 יום (במצב יומן): אתם מבקשים קיבולת לפרק זמן מסוים, והיועץ ביומן מציע תאריכי זמינות. הזמנות עתידיות לפרק זמן של עד 90 ימים (במצב לוח שנה) מאפשרות גמישות רבה יותר לפרקי זמן קצרים יותר וחיפוש קיבולת בשירות עצמי. מידע נוסף זמין במאמר בנושא בקשות למקום שמור לעתיד במצב יומן.
    • מקום שמור על פי דרישה: אתם יכולים לבקש הקצאה של מקום שמור על פי דרישה ברגע שהקיבולת תהיה זמינה, בדומה לאפשרות על פי דרישה. כל עוד ההזמנה פעילה, אתם משלמים על המשאבים גם אם אתם לא משתמשים בהם.
  • התחלה גמישה: אתם מאבטחים משאבים שהוקצו בצפיפות לעומסי עבודה לפרק זמן קצר בלי הזמנה. אתם מבקשים מספר ספציפי של מעבדי GPU או TPU, ו-Compute Engine מקצה אותם כשקיבולת הופכת לזמינה. מעבדי ה-GPU או ה-TPU פועלים ברצף עד שבעה ימים. מידע נוסף זמין במאמר בנושא הקצאת משאבים עם גמישות בהתחלה.
  • ‫Spot: אתם מקצים מכונות וירטואליות במודל Spot, שמאפשרות לכם לקבל הנחות משמעותיות, אבל אפשר להפסיק את פעולת המכונות הווירטואליות במודל Spot בכל שלב, עם אזהרה של 30 שניות. מידע נוסף זמין במאמר VM במודל Spot.

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

הסבר על מכסת מאיצי חומרה ב-GKE

מכסות ומגבלות מערכת מגבילות את השימוש במשאבים של Cloud de Confiance by S3NS כדי לתמוך בזמינות המשאבים לכל משתמשי Cloud de Confiance by S3NS . למכסות יש ערכי ברירת מחדל, אבל בדרך כלל אפשר לבקש לשנות אותן. מגבלות המערכת הן ערכים קבועים שאי אפשר לשנות. כברירת מחדל, בדרך כלל פרויקטים לא כוללים מכסת מאיץ משמעותית. אתם צריכים לבקש ולקבל אישור למכסה לסוגי מאיצים ולאזורים ספציפיים.

כשמנהלים את המכסות שנדרשות לעומסי העבודה, כדאי להביא בחשבון את המאפיינים הבאים:

  • צריך לבקש את המכסה הנדרשת לכל אפשרות צריכה. כדי לזהות את המכסה הנדרשת לכל אפשרות צריכה, אפשר לעיין בפרמטרים המתאימים של 'מכסה' שמפורטים בטבלה בחירת אפשרות צריכה. אם אין מספיק מכסה, ניסיונות ליצור אשכולות, מאגרי צמתים או לפרוס עומסי עבודה שדורשים מאיצים ייכשלו עם השגיאה Quota exceeded.

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

  • Cloud de Confiance by S3NS בחשבונות לתקופת ניסיון בחינם יש מגבלות על בקשות להגדלת מכסות של משאבים יקרי ערך כמו יחידות GPU ו-TPU. כדי לקבל גישה למכסת המאיצים, צריך לשדרג לחשבון בתשלום.

כדי לבדוק את המכסה ולבקש הגדלה שלה, עוברים אל הדף Quotas במסוף Cloud de Confiance . אפשר לסנן את המכסות של המאיצים ולבקש להגדיל אותן.

זיהוי אפשרות צריכה

כדי לבחור את אפשרות הצריכה הכי מתאימה לעומס העבודה שלכם ב-AI או ב-ML, כדאי להביא בחשבון את השיקולים הבאים:

  • סוג עומס העבודה: צריך להביא בחשבון את סוג עומס העבודה שרוצים להטמיע. הדרישות של GKE משתנות בהתאם לסוג עומס העבודה שאתם מריצים: אימון או הסקה:
    • אימון: נדרשים משאבים עם ביצועים גבוהים וזיכרון משמעותי. לעומסי עבודה של אימון יש בדרך כלל משך חיים מוגדר היטב. בדרך כלל קל יותר לתכנן את עומסי העבודה האלה, כי הם פחות נוטים לעליות פתאומיות בצריכת המשאבים.
    • הסקה: בדרך כלל נדרשים מאיצים שעברו אופטימיזציה למדרגיות ועלות נמוכה יותר. עומסי עבודה של הסקת מסקנות עשויים לדרוש זיכרון משמעותי של מאיץ במהלך עליות פתאומיות בצריכת המשאבים.
  • משך החיים על סמך שלב ההטמעה: צריך להתחשב ביעד העסקי אם מבצעים הוכחת היתכנות (POC), הערכת פלטפורמה, פיתוח או בדיקה של אפליקציה, הכנסה לשימוש או אופטימיזציה.
  • זמן הקצאת המשאבים: צריך לקבוע אם עומס העבודה דורש ביצוע מיידי או שאפשר להריץ אותו בעתיד. אם אפשר להפעיל את התהליך בעתיד, צריך לקבוע את מידת הגמישות של שעת ההתחלה.
  • איזון בין עלות לביצועים: בודקים את דרישות הביצועים של עומס העבודה ואת מגבלות התקציב, ובוחרים את המאיץ הכי משתלם. כדאי לשקול את האיזון בין העלות של המאיצים לבין מאפייני הביצועים שלהם. חשוב לזכור שמאיצים חדשים עשויים לשפר את יחסי העלות-ביצועים.

בחירת אפשרות צריכה

הטבלה הבאה תעזור לכם לבחור אפשרות צריכה:

אפשרות צריכה פרמטרים של הקצאת הרשאות מאיצים נתמכים פרטים דוגמאות לעומסי עבודה
מקומות שמורים על פי דרישה
  • זמן הקצאת המשאבים: מיידי (בהזמנה מאושרת)
  • משך החיים: לטווח ארוך (לכל הזמנה)
  • כל GPU (למעט A4X,‏ A4 או A3 Ultra)
  • כל TPU
  • עלות: אתם מחויבים על תקופת ההזמנה המלאה.
  • מכסה: המכסה גדלה באופן אוטומטי לפני שהקיבולת מועברת.
  • עומסי עבודה (workloads) גדולים שפועלים לאורך זמן, כמו אימון מראש של מודלים בסיסיים או הסקת מסקנות (inference) בכמה מארחים.
  • עומסי עבודה בסביבת ייצור.
מקומות שמורים לעתיד
  • זמן הקצאה: מיידי (עם הזמנה מאושרת)
  • משך החיים: לטווח ארוך (לכל הזמנה)
  • G2
  • A2
  • ‫A3 High עם 8 מעבדי GPU
  • A3 Mega
  • A3 Edge
  • עלות: אתם מחויבים על תקופת ההזמנה המלאה.
  • מכסה: המכסה גדלה באופן אוטומטי לפני שהקיבולת מועברת.
  • עומסי עבודה (workloads) גדולים שפועלים לאורך זמן, כמו אימון מראש של מודלים בסיסיים או הסקת מסקנות (inference) בכמה מארחים.
  • עומסי עבודה בסביבת ייצור.
מקום שמור לעתיד ל-90 יום (במצב יומן)
  • זמן הקצאת המשאבים: מיידי (עם הזמנה מאושרת)
  • משך החיים: עד 90 יום
  • A4
  • A3 Ultra
  • A3 Mega
  • ‫A3 High עם 8 מעבדי GPU
  • A3 Edge
  • ‫Ironwood (TPU7x)
  • TPU v6e
  • TPU v5p
  • TPU v5e
  • עלות: בהנחה (עד 53%). אתם מחויבים על תקופת ההזמנה.
  • מכסה: לא מחויבת מכסה.
  • עומסי עבודה מבוזרים שפועלים לזמן קצר, כמו כוונון עדין של מודלים, סימולציות או הסקת מסקנות באצווה, שבהם נדרשת שעת התחלה מדויקת.
  • עומסי עבודה להערכת פלטפורמה, להשוואה או לבדיקת אופטימיזציה.
מצב הקצאה "התחלה גמישה"
  • זמן הקצאה: על פי דרישה (בכפוף לזמינות)
  • משך החיים: עד 7 ימים לכל הקצאה
  • כל משפחות ה-GPU חוץ מ-A4X
  • כל הגרסאות של TPU
  • עומסי עבודה של אצווה, כמו אימון מודלים קטנים, כוונון עדין או הסקת מסקנות ניתנת להרחבה, שבהם שעת ההתחלה גמישה.
  • עומסי עבודה לבדיקות הוכחת היתכנות (POC) או לבדיקות שילוב.
מכונות וירטואליות במודל Spot
  • זמן ההקצאה: על פי דרישה (בכפוף לזמינות)
  • משך החיים: משתנה, יכול להיות שיוקדמו עם אזהרה של 30 שניות
  • כל משפחות ה-GPU חוץ מ-A4X
  • כל גרסאות ה-TPU
  • עומסי עבודה עם עדיפות נמוכה יותר ועמידות בפני תקלות, כמו CI/CD, ניתוח נתונים או מחשוב עתיר ביצועים (HPC).
  • עומסי עבודה שניתן להפריע להם בקלות.
על פי דרישה (יחידות GPU או יחידות TPU)
  • זמן הקצאה: מיידי (בכפוף לזמינות)
  • תוחלת חיים: ללא הגבלה
  • כל משפחות ה-GPU חוץ מ-A4X,‏ A4 או A3 Ultra
  • כל גרסאות ה-TPU
  • עלות: אתם משלמים לפי שימוש.
  • מכסה: מתבצע חיוב על מכסת GPU או TPU על פי דרישה.
  • עומסי עבודה למטרות כלליות שנדרש להם ביצוע מיידי.

אופטימיזציה של עלויות והקצאת עומסי עבודה באמצעות ComputeClasses

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

ברשימה הבאה מפורטות אפשרויות הצריכה שזמינות עם ComputeClasses ומוסבר איך להגדיר אותן. דוגמאות למניפסטים מלאים של YAML זמינות במאמר דוגמאות לאפשרויות צריכה עם ComputeClasses.

  • הזמנות: אתם יכולים להגדיר את שם ההזמנה בשדה reservations ב-ComputeClass. כך GKE תנסה קודם לצרוך את הקיבולת השמורה שלכם לפני שתחזור לשימוש בקיבולת הרגילה.
  • מצב הקצאה "התחלה גמישה": מפעילים את התור הגמיש באמצעות השדה flexStart ב-ComputeClass, ומגדירים את משך הזמן להחלפת צומת חלופי באמצעות השדות nodeRecycling.
  • ‫VM במודל Spot: כדי להגדיר את GKE להשתמש ב-VM במודל Spot כשמוקצים צמתים לכלל העדיפות הזה, צריך להגדיר את השדה spot לערך true.
  • קיבולת על פי דרישה בשילוב עם מדיניות מיקום בכמה אזורים: מגדירים את סוגי המכונות הרגילים ברשימת העדיפויות, וקובעים אסטרטגיית מיקום חלופית באמצעות השדות location.

ב-ComputeClasses אין תמיכה במקומות שמורים לעתיד או במקומות שמורים לעתיד עד 90 יום (במצב לוח שנה).

דוגמאות לאפשרויות צריכה עם ComputeClasses

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

הזמנות עם הגדרת גיבוי

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

ההגדרה הזו יוצרת אסטרטגיה עמידה לחזרה לגרסה קודמת באמצעות השלבים הבאים:

  1. צריכת הזמנות קודמת:‏ GKE מנסה להקצות צמתים באמצעות הזמנת הקיבולת הספציפית שרכשתם מראש.
  2. חזרה ל-Flex-start: אם נעשה שימוש מלא בקיבולת של ההזמנה, GKE חוזר למשאבים של Flex-start עם הנחה לטווח קצר.
  3. חזרה לשימוש על פי דרישה: כפתרון חלופי אחרון, GKE מספק משאבים רגילים על פי דרישה.
  4. העברה חזרה להזמנות: הפעלת העברה פעילה מורה ל-GKE לאחד ולהעביר באופן אוטומטי את עומסי העבודה חזרה לצמתי ההזמנה בעדיפות גבוהה יותר, ברגע שהקיבולת תהיה זמינה. ההעברה הזו עלולה לשבש את העבודה.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: ha-gpu-fallback
    spec:
      activeMigration:
        optimizeRulePriority: true # Migrate workloads back to reservation when capacity releases
      priorities:
      # Priority 1: Consume specific corporate reservation first
      - gpu:
          type: nvidia-l4
          count: 1
        reservations:
          affinity: Specific
          specific:
          - name: reserved-l4-pool
            project: my-project
            zones: [us-central1-a]
      # Priority 2: Fallback to Flex Start (short-duration allocation)
      - gpu:
          type: nvidia-l4
          count: 1
        flexStart:
          enabled: true
      # Priority 3: Fallback to On-demand resources
      - gpu:
          type: nvidia-l4
          count: 1
    

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

ההגדרה הזו מנהלת קיבולת מוזלת לפרקי זמן קצרים עם זמינות רציפה באמצעות השלבים הבאים:

  1. בקשה למכונות וירטואליות מסוג Flex-start: GKE מבקש מכונות וירטואליות מהתור של Flex-start (שפועלות בלי הפרעה עד שבעה ימים).
  2. מעקב אחרי תפוגת ההשכרה: GKE עוקב אחרי משך הזמן שנותר לצמתים הפעילים של ההתחלה הגמישה.
  3. הפעלת מיחזור צמתים: 20 דקות (1,200 שניות) לפני שתוקף ההשכרה של ה-VM פג, GKE מקצה באופן אוטומטי צומת חלופי.
  4. תזמון מחדש של עומסי עבודה: עומסי העבודה מועברים לצומת החדש, והביצוע שלהם מתחדש ללא הפרעה בשירות.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: flex-node-recycling
    spec:
      priorities:
      - gpu:
          type: nvidia-l4
          count: 1
        flexStart:
          enabled: true
          nodeRecycling:
            leadTimeSeconds: 1200 # Automatically launch replacement node before VM lease expires
    

הגדרת מדיניות הקצאה מרובת אזורים

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

  1. הגדרת אזורי יעד: אפשר לציין כמה אזורי גיבוי (כמו us-central1-a, us-central1-b ו-us-central1-c) בכללי העדיפות.
  2. הרחבת פרמטרים של טירגוט: מגדירים את מדיניות המיקום לערך ANY. ההגדרה הזו מורה למידרוג האוטומטי של האשכול לחפש את הקיבולת המבוקשת בכל התחומים שצוינו.
  3. ניתוח הזמינות באזורים: במהלך אירועי הרחבה, GKE סורק את האזורים שצוינו.
  4. הקצאת משאבים באזורים זמינים:‏ GKE מקצה באופן מיידי את צמתי עומס העבודה המבוקשים בכל אזור יעד שיש בו קיבולת תואמת. השיטה הזו מונעת חסימות בתורי הקצאה.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: broad-zonal-serving
    spec:
      priorities:
      - gpu:
          type: nvidia-l4
          count: 1
        location:
          zones: [us-central1-a, us-central1-b, us-central1-c]
          locationPolicy: ANY # Provision accelerator in any target zone with supply
    

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