使用 Compute Engine 建立 Cloud TPU VM 執行個體
本文說明如何使用 Compute Engine gcloud compute instances create 指令建立單一 TPU VM。您也可以指定執行個體範本,建立 TPU VM 執行個體。詳情請參閱「利用執行個體範本建立 VM」。
必要條件
完成下列必要條件:
如「規劃 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:專案的 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 執行個體」。
後續步驟
- 瞭解如何建立具有單一主機 Cloud TPU 節點的 MIG。
- 瞭解如何建立具有多主機 Cloud TPU 配量的 MIG。
- 瞭解如何管理 TPU VM。
- 瞭解 GKE 中的 TPU。
- 瞭解如何在 TPU 上執行機器學習工作負載,例如在 TPU 上使用 vLLM 提供 Qwen2-72B-Instruct 服務。