単一ホストの Cloud TPU スライスを含む MIG を作成する

このドキュメントでは、複数の独立したシングルホスト TPU スライスを含むマネージド インスタンス グループ(MIG)を作成する方法について説明します。

前提条件

次の前提条件を満たします。

  1. TPU のプロジェクトを設定するの説明に従って、TPU のプロジェクトを作成します。
  2. リソースを計画するの説明に従って、TPU の要件を決定します。

複数の単一ホスト TPU スライスを含む MIG を作成する

MIG に複数の独立した TPU VM を作成するには:

  1. インスタンス テンプレートを作成します。
  2. MIG を作成します。

インスタンス テンプレートの作成

インスタンス テンプレートの構成は、使用する消費オプション(オンデマンド、スポット、予約、Flex Start)によって異なります。使用オプションの詳細については、TPU リソースを計画するをご覧ください。

オンデマンド TPU VM のインスタンス テンプレートを作成する

次のコマンドは、オンデマンド消費オプションを使用するインスタンス テンプレートを作成します。

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

各プレースホルダを次のように置き換えます。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
  • MACHINE_TYPE: TPU VM のマシンタイプ(例: ct6e-standard-8t)。
  • IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、--image フラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。
  • IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは ubuntu-os-accelerator-images です。

TPU Spot VM のインスタンス テンプレートを作成する

次のコマンドは、スポット消費オプションを使用するインスタンス テンプレートを作成します。

 gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=STOP \
    --provisioning-model=SPOT \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

各プレースホルダを次のように置き換えます。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
  • MACHINE_TYPE: TPU VM のマシンタイプ(例: ct6e-standard-8t)。
  • IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、--image フラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。
  • IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは ubuntu-os-accelerator-images です。

TPU 予約バインド VM のインスタンス テンプレートを作成する

次のコマンドは、予約バインドの消費オプションを使用するインスタンス テンプレートを作成します。

 gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --reservation-affinity=specific \
    --provisioning-model=reservation-bound \
    --reservation=RESERVATION_NAME \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

各プレースホルダを次のように置き換えます。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
  • MACHINE_TYPE: TPU VM のマシンタイプ(例: ct6e-standard-8t)。
  • RESERVATION_NAME: 使用する特定の予約の名前。
  • IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、--image フラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。
  • IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは ubuntu-os-accelerator-images です。

TPU Flex Start VM のインスタンス テンプレートを作成する

次のコマンドは、Flex Start 消費オプションを使用するインスタンス テンプレートを作成します。

 gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --instance-termination-action=DELETE \
    --provisioning-model=FLEX_START \
    --max-run-duration=DURATION \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT

各プレースホルダを次のように置き換えます。

  • INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
  • MACHINE_TYPE: TPU VM のマシンタイプct6e-standard-8t など)。
  • DURATION: TPU VM の最大実行時間(1h など)。
  • IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、--image フラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。
  • IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは ubuntu-os-accelerator-images です。

MIG を作成する

次のように gcloud compute instance-groups managed create コマンドを使用して、ゾーン MIG またはリージョン MIG を作成します。

  • 単一ホスト TPU スライスを含むゾーン MIG を作成するには、次のコマンドを使用します。

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • 単一ホスト TPU スライスを含むリージョン MIG を作成するには、次のコマンドを使用します。

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION \
        --target-distribution-shape=ANY_SINGLE_ZONE \
        --instance-redistribution-type=none
    

各プレースホルダを次のように置き換えます。

  • MIG_NAME: MIG の名前。
  • MIG_SIZE: MIG 内の VM の数。
  • INSTANCE_TEMPLATE_URL: MIG でインスタンスの作成に使用するインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。
    • リージョン インスタンス テンプレートの場合: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
    • グローバル インスタンス テンプレートの場合: INSTANCE_TEMPLATE_ID
  • ZONE: MIG をプロビジョニングするゾーン
  • REGION: MIG をプロビジョニングするリージョン

MIG にカスタム名で VM を作成する

MIG で VM を作成するには、各 VM のカスタム名を指定します。これは、デバッグや、インスタンスが特定の順序で作成されるようにする場合に便利です。

gcloud

create-instance コマンドを使用してカスタム名で VM を作成し、--instance フラグを指定します。複数の VM を作成するには、VM ごとにコマンドを繰り返します。それ以外の場合は、REST API メソッドを使用して、単一のリクエストで複数の VM を指定します。

  • ゾーン MIG の場合は、次のコマンドを使用します。

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --zone=ZONE \
        --instance=INSTANCE_NAME
    
  • リージョン MIG の場合は、次のコマンドを使用します。

    gcloud compute instance-groups managed create-instance MIG_NAME \
        --region=REGION \
        --instance=INSTANCE_NAME
    

各プレースホルダを次のように置き換えます。

  • MIG_NAME: MIG の名前。
  • ZONE: MIG のゾーン
  • REGION: MIG のリージョン
  • INSTANCE_NAME: 指定した MIG に追加する VM の名前。

REST

次のいずれかの REST API メソッドを使用して、カスタム名で VM を作成します。

  • ゾーン MIG の場合は、instanceGroupManagers.createInstances を使用します。

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

  • リージョン MIG の場合は、regionInstanceGroupManagers.createInstances を使用します。

     POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances
     {
       "instances": [
         {
           "name": "INSTANCE_NAME_1"
         },
         {
           "name": "INSTANCE_NAME_2"
         },
         ...
       ]
     }
     

各プレースホルダを次のように置き換えます。

  • PROJECT_ID: MIG が存在するプロジェクトの ID。
  • ZONE: MIG のゾーン
  • REGION: MIG のリージョン
  • INSTANCE_NAME_1,2,..: 指定された MIG に追加する VM の名前。

次のステップ