このドキュメントでは、単一ホスト TPU スライスを形成するマネージド インスタンス グループ(MIG)を作成する方法について説明します。単一ホスト TPU スライスは、1 つの TPU 仮想マシン(VM)インスタンスにマッピングされます。
単一ホストの TPU スライスをスタンドアロン TPU インスタンスとして作成することもできます。詳細については、TPU VM インスタンスを作成するをご覧ください。
始める前に
- TPU インスタンスを使用して MIG を作成する際の制限事項を確認します。
-
まだ設定していない場合は、認証を設定します。認証では、 Cloud de Confiance by S3NS サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。
詳細については、 Cloud de Confiance 認証ドキュメントの REST を使用して認証するをご覧ください。
前提条件
単一ホストの TPU スライスを作成する前に、次の操作を行う必要があります。
TPU のバージョンを選択する: ワークロードに適した TPU のバージョンを選択します。ワークロード タイプ別の TPU バージョンのリストについては、ワークロード タイプ別の推奨 TPU バージョンをご覧ください。
優先ロケーションで TPU の可用性を確認する: TPU は特定の Cloud de Confiance by S3NS リージョンで利用できます。TPU バージョンを使用するには、優先するリージョンでそのバージョンが使用可能であることを確認します。TPU のロケーションの一覧については、TPU の可用性をご覧ください。
プロジェクトに十分な TPU 割り当てがあることを確認する: オンデマンド VM または Spot VM で単一ホスト TPU スライスを作成する場合は、使用するリージョンに十分な TPU 割り当てが必要です。TPU 予約を使用する単一ホスト TPU スライスの作成には、TPU の割り当ては必要ありません。割り当ては予約の作成時に使用されるためです。TPU 割り当て名のリストについては、TPU 割り当てをご覧ください。割り当てを表示する手順については、割り当ての表示と管理をご覧ください。
TPU の使用オプションを選択する: ワークロード、その期間、費用のニーズに最適な使用オプションを選択します。TPU バージョン別の使用オプションの可用性のリストについては、TPU の使用オプションをご覧ください。
トポロジを選択する: 選択した TPU バージョンでサポートされているトポロジを選択します。TPU の各バージョンで使用可能なトポロジの一覧については、TPU トポロジをご覧ください。
複数の単一ホスト TPU スライスを含む MIG を作成する
MIG に複数の独立した TPU VM を作成するには:
- インスタンス テンプレートを作成します。
- MIG を作成します。
インスタンス テンプレートの作成
インスタンス テンプレートの構成は、使用する消費オプション(オンデマンド、Spot、予約、Flex Start)によって異なります。消費オプションの詳細については、VM プロビジョニング モデルについてをご覧ください。
オンデマンド TPU VM のインスタンス テンプレートを作成する
次のコマンドは、オンデマンド消費オプションを使用するインスタンス テンプレートを作成します。
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "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/global/instanceTemplates"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。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
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。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
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。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
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。MACHINE_TYPE: TPU VM のマシンタイプ(ct6e-standard-8tなど)。DURATION: TPU VM の最大実行時間。REST の場合は、秒数に続けて「s」を含む文字列として指定します(たとえば、1 時間の場合は3600s、7 日の場合は604800s)。IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これはubuntu-os-accelerator-imagesです。
MIG を作成する
単一ホスト TPU スライスを含むゾーン MIG を作成するには、次のコマンドを使用します。
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL"
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。MIG_NAME: MIG の名前。MIG_SIZE: MIG のサイズ。INSTANCE_TEMPLATE_URL: MIG でインスタンスの作成に使用するインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。- リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - グローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
- リージョン インスタンス テンプレートの場合:
ZONE: MIG のゾーン。
単一ホスト TPU スライスを含むリージョン MIG を作成するには、次のコマンドを使用します。
gcloud
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
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
各プレースホルダを次のように置き換えます。
PROJECT_ID: 実際の Cloud de Confiance by S3NS プロジェクト ID。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
各プレースホルダを次のように置き換えます。
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" }, ... ] }
各プレースホルダを次のように置き換えます。