このドキュメントでは、TPU 仮想マシン(VM)インスタンスを作成する方法について説明します。TPU VM は、単一ホストの TPU スライスとも呼ばれます。
単一ホストのスライスのグループを作成するには、 単一ホストの TPU スライスを使用して MIG を作成するをご覧ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。 ログイン後、 初期化するには、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、 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)が必要な場合は、インスタンスを再作成する必要があります。