このドキュメントでは、TPU 仮想マシン(VM)インスタンスを作成する方法について説明します。TPU VM は、単一ホストの TPU スライスとも呼ばれます。
単一ホスト スライスのグループを作成するには、単一ホスト TPU スライスを使用して MIG を作成するをご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
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 インスタンスの作成に進む前に、次の操作を行う必要があります。
TPU のバージョンを選択する: ワークロードに適した TPU のバージョンを選択します。ワークロード タイプ別の TPU バージョンのリストについては、ワークロード タイプ別の推奨 TPU バージョンをご覧ください。
優先ロケーションで TPU の可用性を確認する: TPU は特定の Google Cloud リージョンで利用できます。TPU バージョンを使用するには、優先するリージョンでそのバージョンが使用可能であることを確認します。TPU のロケーションの一覧については、TPU の可用性をご覧ください。
プロジェクトに十分な TPU 割り当てがあることを確認する: オンデマンド VM、Flex Start VM、または Spot VM を使用して TPU インスタンスを作成する場合は、使用するリージョンに十分な TPU 割り当てが必要です。TPU 予約を使用する TPU インスタンスの作成には、TPU の割り当ては必要ありません。割り当ては予約の作成時に使用されるためです。TPU 割り当て名のリストについては、TPU 割り当てをご覧ください。割り当てを表示する手順については、割り当ての表示と管理をご覧ください。
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)、インスタンスを再作成する必要があります。