שליחת בקשה ל-TPU Spot VMs

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

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

יצירת מכונות וירטואליות מסוג TPU במודל Spot

אפשר ליצור מכונות וירטואליות מסוג TPU Spot כמופעים נפרדים או כחלק מקבוצת מופעי מכונה מנוהלים (MIG).

כדי ליצור VM במודל Spot מסוג TPU עם MIG, צריך לציין את מודל הקצאת המשאבים הזמני בתבנית של הגדרות מכונה.

  1. יצירת תבנית של הגדרות מכונה:

    gcloud

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --project=PROJECT_ID \
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --instance-termination-action=STOP \
        --provisioning-model=SPOT \
        --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT
    

    REST

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

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • INSTANCE_TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
    • MACHINE_TYPE: סוג המכונה של מכונת ה-TPU VM, לדוגמה, ct6e-standard-8t.
    • IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של מכונת ה-TPU. אם רוצים להתקין גרסה ספציפית של מערכת ההפעלה, משתמשים בדגל --image. מידע נוסף על תמונות של מערכת ההפעלה זמין במאמר תמונות של מערכת ההפעלה.
    • IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הוא ubuntu-os-accelerator-images.
  2. יצירת מדיניות של עומס עבודה

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

    gcloud

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY \
    --region=REGION
    

    REST

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "WORKLOAD_POLICY_NAME",
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT",
          "acceleratorTopology": "TOPOLOGY"
        }
      }' \
      "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies"
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • WORKLOAD_POLICY_NAME: השם של מדיניות עומס העבודה.
    • TOPOLOGY: הטופולוגיה של מכונות ה-TPU הווירטואליות, לדוגמה, 4x4x8. מידע נוסף על הטופולוגיה של כל גרסה של TPU זמין במאמר בנושא גרסאות TPU.
    • REGION: האזור של מדיניות עומס העבודה.
  3. יוצרים את ה-MIG:

    gcloud

    gcloud compute instance-groups managed create MIG_NAME \
    --size=MIG_SIZE \
    --target-size-policy-mode=bulk \
    --template=INSTANCE_TEMPLATE_URL \
    --zone=ZONE \
    --default-action-on-vm-failure=do-nothing \
    --workload-policy=WORKLOAD_POLICY_URL
    

    REST

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
            "name": "MIG_NAME",
            "targetSize": MIG_SIZE,
            "targetSizePolicy": {
              "mode": "BULK"
            },
            "instanceTemplate": "INSTANCE_TEMPLATE_URL",
            "instanceLifecyclePolicy": {
              "defaultActionOnFailure": "DO_NOTHING"
            },
            "resourcePolicies": {
              "workloadPolicy": "WORKLOAD_POLICY_URL"
            }
          }' \
        "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
    

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

    • PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
    • MIG_NAME: השם של קבוצת ה-MIG.
    • MIG_SIZE: הגודל של ה-MIG.
    • INSTANCE_TEMPLATE_URL: כתובת ה-URL של תבנית של הגדרות מכונה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. כתובת ה-URL יכולה להכיל את המזהה או את השם של תבנית של הגדרות מכונה. מציינים אחד מהערכים הבאים:
      • לתבנית של הגדרות מכונה אזורית: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • לתבנית גלובלית של הגדרות מכונה: INSTANCE_TEMPLATE_ID
    • ZONE: האזור של ה-MIG.
    • WORKLOAD_POLICY_URL: כתובת ה-URL של מדיניות עומס העבודה שרוצים להשתמש בה כדי ליצור מכונות ב-MIG. לדוגמה: projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME.

שימוש במכונות וירטואליות עם TPU יחיד

אפשר גם ליצור מכונות וירטואליות מסוג TPU 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).

מידע נוסף על מכונות וירטואליות מסוג Spot ב-Compute Engine זמין במאמר בנושא מכונות וירטואליות מסוג Spot.

תמחור ומכסות

התמחור של מכונות וירטואליות מסוג TPU Spot נמוך משמעותית מהתמחור של מכשירי TPU לפי דרישה ומכשירי TPU שמורים. למידע נוסף על תמחור, ראו תמחור של Cloud TPU.

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

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