使用 Compute Engine 建立 Cloud TPU VM 執行個體

本文說明如何使用 Compute Engine gcloud compute instances create 指令建立單一 TPU VM。您也可以指定執行個體範本,建立 TPU VM 執行個體。詳情請參閱「依據執行個體範本建立 VM」。

必要條件

請完成下列必要條件:

  1. 按照「設定 TPU 的 Google Cloud 專案」一文中的說明,為 TPU 建立 Google Cloud 專案。

  2. 按照「規劃 Cloud TPU 資源」一文所述,判斷 TPU 需求。

建立 TPU VM 執行個體

建立 TPU VM 執行個體時,使用的參數取決於您採用的用量選項:隨選、Spot、取決於預留項目或彈性啟動。詳情請參閱「規劃 TPU 資源」。

建立隨選 TPU VM 執行個體

如要建立隨選 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"

替換下列預留位置:

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

建立 TPU Spot VM 執行個體

如要建立 TPU Spot VM 執行個體,請使用 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"

替換下列預留位置:

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

替換下列預留位置:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • TPU_NAME:TPU VM 的名稱。
  • MACHINE_TYPE:TPU VM 的機器類型,例如 ct6e-standard-8t。
  • IMAGE_FAMILY:TPU VM 的 OS 映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT::含有 OS 映像檔的專案。 如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images。
  • ZONE:TPU VM 的可用區 (例如 us-central1-b)。
  • RESERVATION_NAME:要使用的特定預留項目名稱。如果是所有容量模式預留項目,您可以指定預留網址,指定區塊或子區塊,如下所示:

    • 指定區塊:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
      
    • 指定子區塊:

      RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
      

建立 TPU 彈性啟動型 VM

如要建立 TPU 彈性啟動 VM 執行個體,請使用 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"

替換下列預留位置:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • TPU_NAME:TPU VM 的名稱。
  • MACHINE_TYPE:TPU VM 的機器類型,例如 ct6e-standard-8t。
  • IMAGE_FAMILY:TPU VM 的 OS 映像檔系列。如要安裝特定 OS 版本,請使用 --image 旗標。如要進一步瞭解 OS 映像檔,請參閱「OS 映像檔」。
  • IMAGE_PROJECT:含有 OS 映像檔的專案。 如果是 TPU 映像檔,則為 ubuntu-os-accelerator-images。
  • ZONE:TPU VM 的可用區 (例如 us-central1-b)。
  • MAX_RUN_DURATION:TPU VM 的執行時間長度上限 (例如 6h)。如果是 REST,請以秒為單位指定這個值 (例如 21600 代表 6 小時)。
  • VALID_DURATION:要求有效的最長期限。如果是 REST,請以秒數指定 (例如 3600 代表 1 小時)。

如要進一步瞭解如何建立 Compute Engine 執行個體,請參閱「建立及啟動 Compute Engine 執行個體」。

後續步驟