יצירת מכונה וירטואלית של Cloud TPU באמצעות Compute Engine

במאמר הזה מוסבר איך ליצור מכונת TPU אחת באמצעות הפקודה gcloud compute instances create של Compute Engine. אפשר גם ליצור TPU VM על ידי ציון תבנית של הגדרות מכונה. מידע נוסף זמין במאמר יצירת מכונה וירטואלית מתבנית של הגדרות מכונה.

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

צריך לוודא שמתקיימות הדרישות הבאות:

  1. יוצרים Google Cloud פרויקט עבור ה-TPU כמו שמתואר במאמר הגדרת Google Cloud פרויקט ל-TPU.

  2. קובעים את הדרישות שלכם ל-TPU כמו שמתואר במאמר תכנון משאבי Cloud TPU.

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

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

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

כדי ליצור מכונה וירטואלית של TPU על פי דרישה, משתמשים בפקודה 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 הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • 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).

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

כדי ליצור מכונת 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 הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • 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).

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

כדי ליצור TPU VM באמצעות אפשרות הצריכה שמקושרת למקום שמור, משתמשים בפקודה 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: מזהה הפרויקט ב- Google Cloud .
  • 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

כדי ליצור מכונה וירטואלית של 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: מזהה הפרויקט ב- Google Cloud .
  • 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 הווירטואלית (לדוגמה, 6h). ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה, 21600 ל-6 שעות).
  • ‫VALID_DURATION: משך הזמן המקסימלי שהבקשה תקפה לגביו. ב-REST, מציינים את הערך הזה כמספר שניות (לדוגמה, 3600 לשעה אחת).

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

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