予約を使用する
TPU 予約がある場合は、予約済みリソースを使用して、予約のプロパティと一致する TPU を作成できます。このアクションは、予約の使用と呼ばれます。Google Kubernetes Engine(GKE)の使用時に TPU 予約を使用する方法については、GKE のドキュメントの TPU 予約をご覧ください。
予約の使用方法は、TPU VM の作成方法によって異なります。TPU VM インスタンスまたは TPU を使用した MIG を作成できます。
TPU VM の作成時に予約を使用する
TPU VM インスタンスを作成するときに、--reservation-affinity パラメータと --reservation パラメータを使用して、使用する予約を指定します。
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--reservation-affinity=specific \
--reservation=projects/PROJECT_ID/reservations/RESERVATION_NAME \
--provisioning-model=reservation-bound \
--maintenance-policy=TERMINATE
各プレースホルダを次のように置き換えます。
- 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)。
- PROJECT_ID: 予約が行われたプロジェクトの ID。
- RESERVATION_NAME:
projects/OWNER_PROJECT_ID/reservations/RESERVATION_NAME形式の予約の名前。
MIG の作成時に予約を使用する
TPU VM で作成できる MIG には、次の 2 種類があります。
- 単一ホスト スライスを含む MIG。
- マルチホスト スライスを含む MIG。
単一ホスト スライスを含む MIG を作成するときに予約を使用する
シングルホスト スライスを使用して MIG を作成するときに予約を使用するには、インスタンス テンプレートの一部として予約を指定します。
単一ホスト スライスを含む MIG を作成するには:
- インスタンス テンプレートを作成
- 省略可: ワークロード ポリシーを作成する
- MIG を作成する
予約を使用するインスタンス テンプレートを作成する
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:
projects/OWNER_PROJECT_ID/reservations/RESERVATION_NAME形式でフォーマットされた予約の名前。 - IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、
--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。 - IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは
ubuntu-os-accelerator-imagesです。
MIG を作成する
ゾーン MIG を作成する
gcloud compute instance-groups managed create MIG_NAME \
--size=SIZE \
--template=INSTANCE_TEMPLATE_NAME \
--zone=ZONE
各プレースホルダを次のように置き換えます。
- MIG_NAME: MIG の名前。
- SIZE: MIG 内の TPU VM の数。
- INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
- ZONE: MIG をプロビジョニングするゾーン。
リージョン MIG を作成する
gcloud compute instance-groups managed create MIG_NAME \
--size=SIZE \
--template=INSTANCE_TEMPLATE_NAME\
--region=REGION \
--target-distribution-shape=any
各プレースホルダを次のように置き換えます。
- MIG_NAME: MIG の名前。
- SIZE: MIG 内の TPU VM の数。
- INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。
- REGION: MIG をプロビジョニングするゾーン。
--target-distribution-shape フラグの詳細については、リージョン MIG 内の VM のターゲット分配形態を設定するをご覧ください。
マルチホスト スライスを含む MIG を作成するときに予約を使用する
マルチホスト スライスを使用して MIG を作成するときに予約を使用するには、インスタンス テンプレートの一部として予約を指定します。
予約を使用するインスタンス テンプレートを作成する
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:
projects/OWNER_PROJECT_ID/reservations/RESERVATION_NAME形式でフォーマットされた予約の名前。 - IMAGE_FAMILY: TPU VM の OS イメージ ファミリー。特定の OS バージョンをインストールする場合は、
--imageフラグを使用します。OS イメージの詳細については、OS イメージをご覧ください。 - IMAGE_PROJECT: OS イメージを含むプロジェクト。TPU イメージの場合、これは
ubuntu-os-accelerator-imagesです。
ワークロード ポリシーの作成
MIG のワークロード ポリシーを指定できます。詳細については、MIG のワークロード ポリシーをご覧ください。
gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
--type=high-throughput \
--accelerator-topology=TOPOLOGY
各プレースホルダを次のように置き換えます。
- WORKLOAD_POLICY_NAME: ワークロード ポリシーの名前。
- TOPOLOGY: TPU VM のトポロジ(
4x4x8など)。TPU の各バージョンのトポロジの詳細については、TPU のバージョンをご覧ください。
MIG を作成する
ゾーン MIG またはリージョン MIG を作成できます。
ゾーン MIG を作成する
gcloud compute instance-groups managed create MIG_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--default-action-on-vm-failure=do-nothing \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
--workload-policy=WORKLOAD_POLICY_URL
各プレースホルダを次のように置き換えます。
- MIG_NAME: MIG の名前。
- SIZE: MIG 内の TPU VM の数。
INSTANCE_TEMPLATE_URL: MIG でインスタンスの作成に使用するインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。- リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - グローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
- リージョン インスタンス テンプレートの場合:
- ZONE: MIG をプロビジョニングするゾーン。
- WORKLOAD_POLICY_URL: MIG でインスタンスの作成に使用するワークロード ポリシーの URL。例:
projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME
リージョン MIG を作成する
gcloud compute instance-groups managed create MIG_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--default-action-on-vm-failure=do-nothing \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
--target-distribution-shape=any-single-zone \
--instance-redistribution-type=none \
--workload-policy=WORKLOAD_POLICY_URL
各プレースホルダを次のように置き換えます。
- MIG_NAME: MIG の名前。
- SIZE: MIG 内の TPU VM の数。
INSTANCE_TEMPLATE_URL: MIG でインスタンスの作成に使用するインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。- リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - グローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
- リージョン インスタンス テンプレートの場合:
- ZONE: MIG をプロビジョニングするゾーン。
- WORKLOAD_POLICY_URL: MIG でインスタンスの作成に使用するワークロード ポリシーの URL。次に例を示します。
projects/PROJECT_ID/regions/WORKLOAD_POLICY_REGION/resourcePolicies/WORKLOAD_POLICY_NAME
予約の使用状況を確認する
共有予約の使用状況を確認できるのは、オーナー プロジェクトからのみです。コンシューマー プロジェクトにいる場合は、オーナー プロジェクトに切り替えて予約の使用状況を確認する必要があります。
予約の使用状況を確認するには、gcloud compute
reservations describe コマンドを使用します。
gcloud compute reservations describe RESERVATION_NAME \
--project=PROJECT_ID --zone=ZONE
プレースホルダ変数を置き換えます。
- RESERVATION_NAME: 予約の名前。
- PROJECT_ID: インスタンスが含まれているプロジェクトの ID。
- ZONE: 予約が存在するゾーン。
プロジェクト内のすべての予約を一覧表示するには、gcloud compute reservations
list コマンドを使用します。
gcloud compute reservations list --project=PROJECT_ID
次のプレースホルダ変数を置き換えます。
- PROJECT_ID: プロジェクトの ID。