Compute Engine を使用して Cloud TPU VM インスタンスを作成する
このドキュメントでは、Compute Engine の gcloud compute instances create コマンドを使用して単一の TPU VM を作成する方法について説明します。インスタンス テンプレートを指定して TPU VM インスタンスを作成することもできます。詳細については、インスタンス テンプレートから VM を作成するをご覧ください。
前提条件
次の前提条件を満たしていることを確認してください。
TPU 用の Google Cloud プロジェクトを設定するの説明に従って、TPU 用の Google Cloud プロジェクトを作成します。
Cloud TPU リソースを計画するの説明に従って、TPU の要件を決定します。
TPU VM インスタンスを作成する
TPU VM インスタンスの作成に使用するパラメータは、使用している消費オプション(オンデマンド、Spot、予約バインド、Flex Start)によって異なります。詳細については、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 インスタンスを作成するには、--provisioning-model=SPOT フラグを指定して 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 \
--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 インスタンスを作成するには、--reservation-affinity=specific フラグと --reservation フラグを指定して 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 \
--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: 使用する特定の予約の名前。All Capacity モードの予約の場合、次のように予約の URL を指定してブロックまたはサブブロックをターゲットに設定できます。
ブロックを指定します。
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAMEサブブロックを指定します。
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
TPU Flex Start VM を作成する
TPU Flex Start VM インスタンスを作成するには、--provisioning-model=FLEX_START フラグを指定して 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 \
--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 の場合は、秒数で指定します(例: 6 時間の場合は21600)。 - VALID_DURATION: リクエストの有効期間の最大値。REST の場合は、秒数で指定します(例: 1 時間の場合は
3600)。
Compute Engine インスタンスの作成の詳細については、Compute Engine インスタンスの作成と開始をご覧ください。
次のステップ
- 単一ホストの Cloud TPU スライスを使用して MIG を作成する方法を学習する。
- マルチホスト Cloud TPU スライスを使用して MIG を作成する方法を学習する。
- TPU VM を管理する方法を学習する。
- GKE の TPU について学習する。