このドキュメントでは、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 にログインする必要があります。
詳細については、 REST を使用して認証する 認証ドキュメントの Google Cloud をご覧ください。
前提条件
TPU インスタンスを作成する前に、次の操作を行う必要があります。
TPU のバージョンを選択する: ワークロードに適した TPU バージョンを選択します。ワークロード タイプ別の TPU バージョンのリストについては、 ワークロード タイプ別の推奨 TPU バージョンをご覧ください。
優先ロケーションで TPU の可用性を確認する: TPU は 特定の Google Cloud リージョンで利用できます。TPU バージョンを使用するには、優先リージョンでそのバージョンが使用可能であることを確認します。TPU ロケーションのリストについては、 TPU の可用性をご覧ください。
プロジェクトに十分な TPU 割り当てがあることを確認する: オンデマンド 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 インスタンスを作成するには、
gcloud compute instances create コマンド
と --provisioning-model=SPOT フラグを使用します。
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 インスタンスを作成するには、gcloud compute instances create コマンドと --reservation-affinity=specific フラグおよび --reservation フラグを使用します。
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 インスタンスを作成するには、
gcloud compute instances create コマンド
と --provisioning-model=FLEX_START フラグを使用します。
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)が必要な場合は、インスタンスを再作成する必要があります。