建立 TPU VM 執行個體

本文說明如何建立 TPU 虛擬機器 (VM) 執行個體。TPU VM 也稱為單一主機 TPU 配量。

如要建立單主機配量群組,請參閱「建立含單主機 TPU 配量的 MIG」。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上您打算如何使用範例的分頁:

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要條件

繼續建立 TPU 執行個體前,請先完成下列步驟:

  1. 選擇 TPU 版本:選取適合工作負載的 TPU 版本。如需依工作負載類型列出的 TPU 版本,請參閱「依工作負載類型建議的 TPU 版本」。

  2. 驗證偏好位置的 TPU 可用性:TPU 僅在特定 Google Cloud 區域提供。如要使用 TPU 版本,請確認該版本在偏好區域是否可用。如需 TPU 位置清單,請參閱 TPU 可用性

  3. 確認專案有足夠的 TPU 配額:如果您要使用隨選或 Spot VM 建立 TPU 執行個體,您必須在要使用的區域中,有足夠的可用 TPU 配額。建立使用 TPU 預留項目的 TPU 執行個體時,不需要任何 TPU 配額,因為配額是在建立預留項目時使用。如需 TPU 配額名稱清單,請參閱「TPU 配額」;如需查看配額的操作說明,請參閱「查看及管理配額」。

  4. 選擇 TPU 計費方案:選取最符合工作負載、工作負載時間長度和費用需求的計費方案。如需各 TPU 版本適用的用量方案清單,請參閱 TPU 用量方案

建立 TPU VM 執行個體

建立 TPU VM 執行個體時使用的參數,取決於您使用的消耗選項:隨需、Spot、繫結預留項目或彈性啟動。詳情請參閱「關於 VM 佈建模式」。

建立隨選 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:專案的 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)。

建立 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:專案的 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)。

使用預留項目建立 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:專案的 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)。
  • RESERVATION_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:專案的 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)。
  • MAX_RUN_DURATION:TPU VM 的最長執行時間 (例如 6h)。如果是 REST,請以秒數指定此值 (例如 21600 代表 6 小時)。
  • VALID_DURATION:要求有效期間上限。如果是 REST,請以秒數指定這個值 (例如 1 小時為 3600)。 要求有效。

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

限制

  • 生命週期作業:您無法停止、啟動、繼續或暫停 TPU 執行個體。如要變更需要重新啟動的設定,或停止產生費用,請刪除執行個體。

  • 更新 VM 詳細資料:您可以更新屬性,但僅限於需要重新整理 (REFRESH) 的屬性。如果設定需要重新啟動 (RESTART),則必須重新建立執行個體。

後續步驟