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、予約バインド、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 インスタンスの作成と開始をご覧ください。

次のステップ