TPU VM インスタンスを作成する

このドキュメントでは、TPU 仮想マシン(VM)インスタンスを作成する方法について説明します。TPU VM は、単一ホストの TPU スライスとも呼ばれます。

単一ホスト スライスのグループを作成するには、単一ホスト TPU スライスを使用して MIG を作成するをご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    gcloud

    1. Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  • デフォルトのリージョンとゾーンを設定します。
  • REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

前提条件

TPU インスタンスの作成に進む前に、次の操作を行う必要があります。

  1. TPU のバージョンを選択する: ワークロードに適した TPU のバージョンを選択します。ワークロード タイプ別の TPU バージョンのリストについては、ワークロード タイプ別の推奨 TPU バージョンをご覧ください。

  2. 優先ロケーションで TPU の可用性を確認する: TPU は特定の Google Cloud リージョンで利用できます。TPU バージョンを使用するには、優先するリージョンでそのバージョンが使用可能であることを確認します。TPU のロケーションの一覧については、TPU の可用性をご覧ください。

  3. プロジェクトに十分な TPU 割り当てがあることを確認する: オンデマンド VM、Flex Start VM、または Spot VM を使用して TPU インスタンスを作成する場合は、使用するリージョンに十分な TPU 割り当てが必要です。TPU 予約を使用する TPU インスタンスの作成には、TPU の割り当ては必要ありません。割り当ては予約の作成時に使用されるためです。TPU 割り当て名のリストについては、TPU 割り当てをご覧ください。割り当てを表示する手順については、割り当ての表示と管理をご覧ください。

  4. TPU の使用オプションを選択する: ワークロード、その期間、費用のニーズに最適な使用オプションを選択します。TPU バージョン別の使用オプションの可用性のリストについては、TPU の使用オプションをご覧ください。

TPU VM インスタンスを作成する

TPU VM インスタンスの作成に使用するパラメータは、使用している消費オプション(オンデマンド、Spot、予約バインド、Flex Start)によって異なります。詳細については、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: 実際の 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: 予約の名前。

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

制限事項

  • ライフサイクル オペレーション: TPU インスタンスの停止、開始、再開、一時停止はできません。再起動が必要な構成を変更する場合や、課金を停止する場合は、インスタンスを削除する必要があります。

  • VM の詳細を更新する: 更新(REFRESH)アクションのみが必要なプロパティを更新できます。構成で再起動が必要な場合(RESTART)、インスタンスを再作成する必要があります。

次のステップ