שיתוף הזמנה של Cloud TPU

במאמר הזה מוסבר איך לשתף הזמנת TPU בין כמה פרויקטים. שיתוף הזמנות מאפשר ליצור הזמנה של Cloud TPU בפרויקט אחד (פרויקט הבעלים) ולהשתמש בהזמנה הזו בפרויקט אחר (פרויקט הצרכן) באותו ארגון שבו נמצא פרויקט הבעלים. שיתוף הזמנות מאפשר גם להריץ משימות אימון בהתאמה אישית או משימות חיזוי ב-Vertex AI באמצעות הזמנה של TPU.

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

מידע נוסף על קבלת הזמנה של TPU זמין במאמר מידע על הזמנות של Cloud TPU.

מגבלות

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

המרת הזמנה לפרויקט יחיד להזמנה משותפת

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

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

כדי להפעיל שיתוף של הזמנת TPU:

  1. נותנים לפרויקט הבעלים הרשאה ליצור ולשנות הזמנות משותפות באמצעות הפקודה gcloud resource-manager org-policies allow:

    gcloud resource-manager org-policies allow \
        compute.sharedReservationsOwnerProjects \
        projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID

    מחליפים את מה שכתוב בשדות הבאים:

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

  3. כדי להמיר הזמנה לפרויקט יחיד להזמנה משותפת, משתמשים בפקודה gcloud compute reservations update עם הדגלים --share-setting=projects ו---add-share-with:

    gcloud compute reservations update RESERVATION_NAME \
        --project=OWNER_PROJECT_ID \
        --share-setting=projects \
        --add-share-with=CONSUMER_PROJECT_IDS \
        --zone=ZONE

    מחליפים את מה שכתוב בשדות הבאים:

    • RESERVATION_NAME: השם של ההזמנה.
    • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
    • CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי פרויקטים שיכולים להשתמש בהזמנה הזו. לדוגמה, project-1,project-2. אפשר לכלול עד 100 פרויקטים לצרכן. הפרויקטים האלה צריכים להיות באותו ארגון כמו פרויקט הבעלים. לא כוללים את פרויקט הבעלים. כברירת מחדל, הפרויקט הבעלים כבר יכול להשתמש במקום השמור.
    • ZONE: האזור שבו נמצאת ההזמנה.

המרת הזמנה משותפת להזמנה לפרויקט מסוים

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

כדי להפסיק את השיתוף של הזמנת TPU עם כל הפרויקטים לצרכנים, משנים את ההזמנה המשותפת להזמנה לפרויקט יחיד באמצעות הפקודה gcloud compute reservations update עם הדגל --share-setting=local:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-setting=local \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • ZONE: האזור שבו נמצאת ההזמנה.

שינוי פרויקטים של צרכנים במקום שמור משותף

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

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

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

הוספת פרויקטים להזמנה משותפת

כדי להוסיף פרויקט אחד או יותר להזמנה משותפת, משתמשים בפקודה gcloud compute reservations update עם הדגל --add-share-with:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --add-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי פרויקטים שרוצים לשתף איתם את ההזמנה. לדוגמה, project-1,project-2.
  • ZONE: האזור שבו נמצאת ההזמנה.

הסרת פרויקטים מהזמנה משותפת

כדי להסיר פרויקט אחד או יותר מהזמנה משותפת, משתמשים בפקודה gcloud compute reservations update עם הדגל --remove-share-with:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --remove-share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי פרויקטים שרוצים להפסיק את השיתוף של ההזמנה איתם. לדוגמה, project-1,project-2.
  • ZONE: האזור שבו נמצאת ההזמנה.

החלפת רשימת הפרויקטים שיכולים להשתמש בהזמנה משותפת

כדי להחליף את רשימת הפרויקטים שיכולים להשתמש בהזמנה משותפת, משתמשים בפקודה gcloud beta compute reservations update עם הדגל --share-with:

gcloud beta compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --share-with=CONSUMER_PROJECT_IDS \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • CONSUMER_PROJECT_IDS: רשימה מופרדת בפסיקים של מזהי פרויקטים שרוצים לשתף איתם את ההזמנה. לדוגמה, project-1,project-2.
  • ZONE: האזור שבו נמצאת ההזמנה.

איך מאפשרים ל-Vertex AI להשתמש בשמירת מקום ב-TPU

אפשר לאפשר למשימות אימון או למשימות חיזוי ב-Vertex AI להשתמש בשמירת מקום ב-TPU רק אחרי שעת ההתחלה שלה.

כדי לאפשר ל-Vertex AI להשתמש בשמירת מקום ב-TPU, משתמשים בפקודה gcloud compute reservations update עם הדגל --reservation-sharing-policy=ALLOW_ALL:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=ALLOW_ALL

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • ZONE: האזור של שמירת הזכויות.

איך אוסרים על Vertex AI להשתמש בהזמנת TPU

לפני שמונעים מ-Vertex AI להשתמש בשמירת מקום ב-TPU, צריך להפסיק את כל המשימות של Vertex AI שמשתמשות בה. אחרת, תקבלו שגיאות.

כדי למנוע מ-Vertex AI לצרוך הזמנת TPU, משתמשים בפקודה gcloud compute reservations update עם הדגל --reservation-sharing-policy=DISALLOW_ALL:

gcloud compute reservations update RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE \
    --reservation-sharing-policy=DISALLOW_ALL

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • ZONE: האזור של שמירת הזכויות.

קבלת מידע על הזמנה משותפת

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

כדי לקבל מידע על הזמנה משותפת, משתמשים בפקודה gcloud compute reservations describe:

gcloud compute reservations describe RESERVATION_NAME \
    --project=OWNER_PROJECT_ID \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • RESERVATION_NAME: השם של ההזמנה.
  • OWNER_PROJECT_ID: מזהה הפרויקט שמכיל את ההזמנה.
  • ZONE: האזור של שמירת הזכויות.

התגובה אמורה להיראות כך:

aggregateReservation:
[...]
name: RESERVATION_NAME
reservationSharingPolicy:
  serviceShareType: ALLOW_ALL
resourceStatus: {}
selfLink: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME
shareSettings:
  projectMap:
    'CONSUMER_PROJECT_1':
      projectId: 'CONSUMER_PROJECT_1'
    'CONSUMER_PROJECT_2':
      projectId: 'CONSUMER_PROJECT_2'
  shareType: SPECIFIC_PROJECTS
specificReservationRequired: true
status: READY
zone: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE

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