申請使用 TPU Spot VM

Spot VM 提供未使用的容量,並大幅降低費率。Spot VM 可能隨時遭到先占,但與先占 TPU 不同,Spot VM 沒有執行時間上限。如要重新啟動 Spot VM 執行個體或 MIG,必須先刪除再重新建立。

如要進一步瞭解 Spot VM,請參閱 Compute Engine 說明文件中的 Spot VM 相關資訊

建立 TPU Spot VM

您可以建立個別的 TPU Spot VM,也可以將其納入代管執行個體群組 (MIG)。

如要使用 MIG 建立 TPU Spot VM,請在執行個體範本中指定 Spot 佈建模型。

  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"
    

    替換下列預留位置:

    • PROJECT_ID:專案的 ID。 Google Cloud
    • INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。
    • MACHINE_TYPE:TPU VM 的機型,例如 ct6e-standard-8t
    • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
    • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 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"
    

    替換下列預留位置:

    • PROJECT_ID:專案的 ID。 Google Cloud
    • WORKLOAD_POLICY_NAME:工作負載政策的名稱。
    • TOPOLOGY:TPU VM 的拓撲,例如 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"
    

    替換下列預留位置:

    • PROJECT_ID:專案的 ID。 Google Cloud
    • MIG_NAME:MIG 的名稱。
    • MIG_SIZE:MIG 的大小。
    • INSTANCE_TEMPLATE_URL:您要用於在 MIG 中建立執行個體的執行個體範本網址。網址可以包含執行個體範本的ID 或名稱。請指定下列其中一個值:
      • 如果是區域執行個體範本:projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
      • 全域執行個體範本:INSTANCE_TEMPLATE_ID
    • ZONE:MIG 的區域
    • WORKLOAD_POLICY_URL:您要用來在 MIG 中建立執行個體的 workload 政策網址。例如:projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME

使用單一 TPU VM

您也可以建立單一 TPU Spot VM。

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"

替換下列預留位置:

  • PROJECT_ID:專案的 ID。 Google Cloud
  • TPU_NAME:TPU VM 的名稱。
  • MACHINE_TYPE:TPU VM 的機型 (例如 ct6e-standard-8t)。
  • IMAGE_FAMILY:TPU VM 的作業系統映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:包含 OS 映像檔的專案。如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images
  • ZONE:TPU VM 的區域 (例如 us-central1-b)。

如要進一步瞭解 Compute Engine 中的 Spot VM,請參閱「Spot VM」。

定價與配額

TPU Spot VM 的價格遠低於隨選和預留 TPU。如要進一步瞭解定價,請參閱 Cloud TPU 定價

如要使用 TPU Spot VM,必須有先占配額。詳情請參閱「配額」。

後續步驟