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

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

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

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

מגבלות

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

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

  • אפשר לשנות הזמנה לטווח קצר במצב יומן או הזמנה לטווח ארוך רק באופן הבא:

    • אפשר לשנות את ההזמנה רק אחרי שעת ההתחלה שלה.

    • אפשר לשנות את השמירה רק כדי לאפשר או לא לאפשר למשימות ב-Vertex AI להשתמש בה.

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

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

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

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

  3. כדי להפעיל שיתוף, משתמשים בפקודה gcloud beta compute reservations update עם הדגלים --share-setting=projects ו---share-with:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

gcloud beta 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 beta compute reservations update עם הדגל --reservation-sharing-policy=DISALLOW_ALL:

gcloud beta 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

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