יצירת מכונת TPU וירטואלית

במאמר הזה מוסבר איך ליצור מכונה וירטואלית (VM) של TPU. ‫TPU VM נקרא גם פרוסת TPU במארח יחיד.

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

לפני שמתחילים

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

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

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל.
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

דרישות מוקדמות

לפני שיוצרים מכונת TPU, צריך לבצע את הפעולות הבאות:

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

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

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

  4. לוודא שיש לפרויקט מכסת TPU מספיקה: אם אתם יוצרים מכונת TPU עם מכונות וירטואליות על פי דרישה, Flex-start או Spot, אתם צריכים לוודא שיש לכם מכסת TPU מספיקה באזור שבו אתם רוצים להשתמש. כדי ליצור מכונת TPU שצורכת הקצאה של TPU, לא צריך מכסת TPU כי המכסה נוצלה כשההקצאה נוצרה. במאמר מכסת TPU מפורטים שמות המכסות של TPU, ובמאמר הצגה וניהול של מכסות מוסבר איך רואים את המכסות.

יצירת מכונה של TPU VM

הפרמטרים שבהם משתמשים כדי ליצור מכונת TPU VM תלויים באפשרות הצריכה שבה משתמשים: על פי דרישה, Spot, עם הזמנה מראש או התחלה גמישה (Flex-start). מידע נוסף זמין במאמר מידע על מודלים להקצאת VM.

יצירת מכונה וירטואלית של TPU על פי דרישה

כדי ליצור מכונת TPU VM על פי דרישה, משתמשים בפקודה gcloud compute instances create:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

יצירת מכונה וירטואלית של TPU במודל Spot

כדי ליצור מכונה וירטואלית (VM) מסוג TPU Spot, משתמשים בפקודה gcloud compute instances create עם הדגל --provisioning-model=SPOT:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

יצירת TPU VM באמצעות מקום שמור

כדי ליצור מכונת TPU VM באמצעות אפשרות הצריכה reservation-bound, משתמשים בפקודה gcloud compute instances create עם הדגלים --reservation-affinity=specific ו---reservation:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=reservation-bound \
  --reservation-affinity=specific \
  --reservation=RESERVATION_NAME \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "RESERVATION_BOUND",
      "instanceTerminationAction": "DELETE"
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "SPECIFIC_RESERVATION",
      "key": "compute.googleapis.com/reservation-name",
      "values": [
        "RESERVATION_NAME"
      ]
    }
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫TPU_NAME: שם ל-TPU VM.
  • ‫MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על קובצי אימג' של מערכת ההפעלה
  • ‫IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ‫ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).
  • ‫RESERVATION_NAME: השם של ההזמנה הספציפית לשימוש. בכל ההזמנות במצב "קיבולת", אפשר לטרגט בלוק או תת-בלוק על ידי ציון כתובת ה-URL להזמנת מקום באופן הבא:

    • מציינים בלוק:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
      
    • מציינים בלוק משנה:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
      

יצירת TPU Flex-start VM

כדי ליצור מכונה וירטואלית של TPU Flex-start, משתמשים בפקודה gcloud compute instances create עם הדגל --provisioning-model=FLEX_START:

gcloud

gcloud compute instances create TPU_NAME \
  --machine-type=MACHINE_TYPE \
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --zone=ZONE \
  --provisioning-model=FLEX_START \
  --max-run-duration=MAX_RUN_DURATION \
  --request-valid-for-duration=VALID_DURATION \
  --instance-termination-action=DELETE \
  --maintenance-policy=TERMINATE

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "TPU_NAME",
    "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        }
      }
    ],
    "params": {
      "requestValidForDuration": {
        "seconds": VALID_DURATION
      }
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START",
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": MAX_RUN_DURATION
      }
    },
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ]
  }' \
  "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances"

מחליפים את ה-placeholders הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
  • ‫TPU_NAME: שם ל-TPU VM.
  • ‫MACHINE_TYPE: סוג המכונה של ה-TPU VM (לדוגמה, ct6e-standard-8t).
  • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת ההפעלה של ה-TPU VM. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על קובצי אימג' של מערכת ההפעלה
  • ‫IMAGE_PROJECT: הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  • ‫ZONE: האזור של ה-TPU VM (לדוגמה, us-central1-b).
  • ‫MAX_RUN_DURATION: משך הזמן המקסימלי להרצת ה-TPU VM (לדוגמה 6h). ב-REST, צריך לציין את משך הזמן בשניות (לדוגמה 21600 ל-6 שעות).
  • ‫VALID_DURATION: משך הזמן המקסימלי שבו הבקשה תקפה. ב-REST, מציינים את זה כמספר שניות (לדוגמה, 3600 לשעה אחת).

למידע נוסף על יצירת מכונות של Compute Engine, קראו את המאמר יצירת מכונה של Compute Engine והפעלה שלה.

מגבלות

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

  • עדכון פרטי המכונה הווירטואלית: אתם יכולים לעדכן את המאפיינים שדורשים רק פעולת רענון (REFRESH). אם צריך להפעיל מחדש (RESTART) את המכונה כדי להחיל את ההגדרה, צריך ליצור אותה מחדש.

  • הפעלה מחדש אוטומטית: במצב All Capacity, אסור להשבית את ההפעלה מחדש האוטומטית על ידי הגדרת השדה scheduling.automaticRestart לערך false.

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