יצירת מכונה וירטואלית של 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 VM

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

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

  • ‫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

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

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

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

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