A3 Ultra インスタンスまたは A4 インスタンスを作成する

このドキュメントでは、A3 Ultra または A4 マシンシリーズで GPU が割り当てられたインスタンスの作成方法について説明します。GPU が割り当てられたインスタンスの作成の詳細については、GPU が割り当てられたインスタンスの作成の概要をご覧ください。

A4 マシンシリーズと A3 Ultra マシンシリーズは、ターゲットを絞ったワークロード配置、高度なクラスタ メンテナンス制御、トポロジーを考慮したスケジューリングなどの機能を備えた大規模な AI/ML クラスタを実行できるように設計されています。詳細については、クラスタ管理の概要をご覧ください。

始める前に

  • GPU が割り当てられたインスタンスの作成に関する制限事項とその他の前提条件(OS イメージの選択方法や GPU の割り当ての確認方法など)を確認するには、GPU が割り当てられたインスタンスの作成の概要をご覧ください。
  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    2. Set a default region and zone.

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

必要なロール

インスタンスの作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼します。ロールの付与について詳しくは、プロジェクト、フォルダ、組織へのアクセス権を管理するをご覧ください。

この事前定義ロールには、インスタンスの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

インスタンスを作成するには、次の権限が必要です。

  • プロジェクトに対する compute.instances.create
  • カスタム イメージを使用して VM を作成する: イメージに対する compute.images.useReadOnly
  • スナップショットを使用して VM を作成する: スナップショットに対する compute.snapshots.useReadOnly
  • インスタンス テンプレートを使用して VM を作成する: インスタンス テンプレートに対する compute.instanceTemplates.useReadOnly
  • VM のサブネットを指定する: プロジェクトまたは選択したサブネットに対する compute.subnetworks.use
  • VM の静的 IP アドレスを指定する: プロジェクトに対する compute.addresses.use
  • VPC ネットワークの使用時に VM に外部 IP アドレスを割り当てる: プロジェクトまたは選択したサブネットに対する compute.subnetworks.useExternalIp
  • VM にレガシー ネットワークを割り当てる: プロジェクトに対する compute.networks.use
  • レガシー ネットワークを使用する際に VM に外部 IP アドレスを割り当てる: プロジェクトに対する compute.networks.useExternalIp
  • VM の VM インスタンス メタデータを設定する: プロジェクトに対する compute.instances.setMetadata
  • VM にタグを設定する: VM に対する compute.instances.setTags
  • VM にラベルを設定する: VM に対する compute.instances.setLabels
  • VM が使用するサービス アカウントを設定する: VM に対する compute.instances.setServiceAccount
  • VM 用の新しいディスクを作成する: プロジェクトに対する compute.disks.create
  • 既存のディスクを読み取り専用モードまたは読み取り / 書き込みモードでアタッチする: ディスクに対する compute.disks.use
  • 既存のディスクを読み取り専用モードでアタッチする: ディスクに対する compute.disks.useReadOnly

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

A3 Ultra インスタンスまたは A4 インスタンスの作成方法を決定する

A3 Ultra インスタンスまたは A4 インスタンスの作成に使用するオプションを決定するには、次の操作を行います。

  1. 使用オプションを選択する: A3 Ultra インスタンスまたは A4 インスタンスの使用オプションを選択する方法については、AI Hypercomputer のドキュメントの使用オプションを選択するをご覧ください。

  2. 容量を取得する: 選択した消費オプションで A3 Ultra インスタンスまたは A4 インスタンスの容量を取得する方法については、AI Hypercomputer のドキュメントの容量の概要をご覧ください。

  3. 作成手順を選択する: マネージド インスタンス グループ(MIG)やクラスタなど、A3 Ultra インスタンスまたは A4 インスタンスの作成に使用できるすべてのオプションについては、AI Hypercomputer のドキュメントの VM とクラスタの作成の概要をご覧ください。

    A3 Ultra または A4 のクラスタ管理機能を使用する場合、またはスタンドアロン インスタンスを作成しない場合は、代わりに AI Hypercomputer のドキュメントで作成オプションを選択します。

A3 Ultra インスタンスまたは A4 インスタンスを作成する

A3 Ultra インスタンスまたは A4 インスタンスを作成する手順は次のとおりです。

  1. VPC ネットワークを作成する

  2. インスタンスを作成する

  3. インスタンスを使用できるように準備する

VPC ネットワークを作成する

A4 マシンタイプまたは A3 Ultra マシンタイプのネットワークを設定するには、次のネットワーク インターフェース用に 3 つの VPC ネットワークを作成します。

  • gVNIC ネットワーク インターフェース(NIC)用の 2 つの通常の VPC ネットワーク。ホスト間通信に使用されます。
  • CX-7 NIC には、RoCE ネットワーク プロファイルを持つ 1 つの VPC ネットワークが必要です。RoCE VPC ネットワークには、8 個のサブネット(CX-7 NIC ごとに 1 個のサブネット)が必要です。これらの NIC は RDMA over Converged Ethernet(RoCE)を使用し、GPU 間通信に不可欠な高帯域幅で低レイテンシの通信を提供します。

NIC の配置の詳細については、ネットワーク帯域幅と NIC の配置を確認するをご覧ください。

手順ガイドに沿って、手動または自動(提供されたスクリプト)でネットワークを作成します。

手順ガイド

ネットワークを作成するには、次の操作を行います。

これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定することをおすすめします。A4 マシンタイプまたは A3 Ultra マシンタイプの場合、推奨される MTU は 8896 バイトです。他の GPU マシンタイプの推奨 MTU 設定を確認するには、GPU マシンタイプの MTU 設定をご覧ください。

スクリプト

ネットワークを作成する手順は次のとおりです。

これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定することをおすすめします。A4 マシンタイプまたは A3 Ultra マシンタイプの場合、推奨される MTU は 8896 バイトです。他の GPU マシンタイプの推奨 MTU 設定を確認するには、GPU マシンタイプの MTU 設定をご覧ください。

  1. 次のスクリプトを使用して、gVNIC と CX-7 NIC の VPC ネットワークを作成します。

      
        #!/bin/bash
    
        # Create regular VPC networks and subnets for the gVNICs
        for N in $(seq 0 1); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
            --subnet-mode=custom \
            --mtu=8896
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --region=REGION \
            --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
            --network=GVNIC_NAME_PREFIX-net-$N \
            --action=ALLOW \
            --rules=tcp:0-65535,udp:0-65535,icmp \
            --source-ranges=10.0.0.0/8
        done
    
        # Create SSH firewall rules
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
        # Assumes that an external IP is only created for vNIC 0
        gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      
        # List and make sure network profiles exist in the machine type's zone
        gcloud compute network-profiles list --filter "location.name=ZONE"
    
        # Create network for CX-7
        gcloud compute networks create RDMA_NAME_PREFIX-mrdma \
          --network-profile=ZONE-vpc-roce \
          --subnet-mode custom \
          --mtu=8896
    
        # Create subnets
        for N in $(seq 0 7); do
          gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \
            --network=RDMA_NAME_PREFIX-mrdma \
            --region=REGION \
            --range=10.$((N+2)).0.0/16 # offset to avoid overlap with gVNICs
        done
    
      

    次のように置き換えます。

    • GVNIC_NAME_PREFIX: gVNIC の通常の VPC ネットワークとサブネットに使用するカスタム名の接頭辞。
    • RDMA_NAME_PREFIX: CX-7 NIC の RoCE VPC ネットワークとサブネットに使用するカスタム名の接頭辞。
    • ZONE: 使用するマシンタイプが使用可能なゾーン(us-central1-a など)を指定します。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
    • REGION: サブネットを作成するリージョン。このリージョンは、指定したゾーンに対応している必要があります。たとえば、ゾーンが us-central1-a の場合、リージョンは us-central1 です。
    • IP_RANGE: SSH ファイアウォール ルールに使用する IP 範囲。
  2. 省略可: VPC ネットワーク リソースが正常に作成されたことを確認するには、 Google Cloud コンソールでネットワーク設定を確認します。
    1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] に移動

    2. リストで、前の手順で作成したネットワークを検索します。
    3. サブネット、ファイアウォール ルール、その他のネットワーク設定を表示するには、ネットワークの名前をクリックします。

インスタンスを作成する

インスタンスを作成するには、次のいずれかのオプションを使用します。

コンソール

  1. Google Cloud コンソールで [インスタンスの作成] ページに移動します。

    [インスタンスの作成] に移動

    [インスタンスの作成] 画面が表示され、[マシンの構成] ペインが表示されます。

  2. [マシンの構成] ペインで、次の操作を行います。

    1. [名前] でインスタンスの名前を指定します。リソースの命名規則をご覧ください。

    2. [リージョン] と [ゾーン] で、容量を予約したリージョンとゾーンをそれぞれ選択します。

    3. [GPU] タブをクリックして、次の操作を行います。

      1. [GPU のタイプ] リストで、GPU のタイプを選択します。

        • A4 インスタンスの場合は、NVIDIA B200 を選択します。

        • A3 Ultra インスタンスの場合は、NVIDIA H200 141 GB を選択します。

      2. [GPU の数] リストで、8 を選択します。

  3. ナビゲーション メニューで [OS とストレージ] をクリックします。表示された [OS とストレージ] ペインで、次の手順を完了します。

    1. [変更] をクリックします。[ブートディスクの構成] ペインが表示されます。

    2. [公開イメージ] タブで、推奨イメージを選択します。推奨イメージの一覧については、オペレーティング システムをご覧ください。

    3. ブートディスクのオプションを確認するには、[選択] をクリックします。

  4. マルチ NIC インスタンスを作成するには、次の手順を完了します。それ以外の場合は、単一 NIC インスタンスを作成するため、これらの手順をスキップします。

    • ナビゲーション メニューで、[ネットワーキング] をクリックします。表示された [ネットワーキング] ペインで、次の手順を完了します。

      1. [ネットワーク インターフェース] セクションで、次の操作を行います。

      2. デフォルトのネットワーク インターフェースを削除します。インターフェースを削除するには、[ 削除] をクリックします。

      3. [ネットワーク インターフェースを追加] をクリックします。このオプションを使用して、前のセクションで作成した VPC ネットワークに接続するネットワーク インターフェースを追加します。ネットワーク インターフェースを追加する際は、次の点に注意してください。

        • ホスト間通信に使用されるネットワーク インターフェースの場合は、[ネットワーク] リストと [サブネットワーク] リストから通常の VPC ネットワークとサブネットを選択し、[ネットワーク インターフェース カード] リストで [gVNIC] を選択します。

        • GPU 間通信に使用されるネットワーク インターフェースの場合は、[ネットワーク] リストと [サブネットワーク] リストから RoCE VPC ネットワークとサブネットを選択し、これらのネットワーク インターフェースの [ネットワーク インターフェース カード] リストで [MRDMA] を選択します。

  5. ナビゲーション メニューで、[詳細設定] をクリックします。次に、使用するプロビジョニング モデルの手順に沿って操作します。

    Flex Start

    1. [プロビジョニング モデル] セクションの [VM プロビジョニング モデル] リストで、[Flex Start] を選択します。
    2. [時間数を入力] に、VM を実行する最大時間を入力します。値は 46 秒(0.01)から 7 日間(168、168 時間)の範囲で指定する必要があります。

    3. [VM 作成の待機時間を設定する] を選択します。

      ワークロードのゾーン要件に基づいて、VM 作成リクエストが成功する可能性を高めるために、次のいずれかの期間を指定することをおすすめします。

      • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒から 2 時間の間の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
      • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒に指定するか、[VM の作成の待機時間を設定する] チェックボックスをオフにします。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。

    予約で制限

    1. [予約を選択] をクリックします。この操作を行うと、選択したゾーンで使用可能な予約のリストを含むペインが開きます。予約リストで、次の操作を行います。

      1. VM に使用する予約を選択します。予約内の特定のブロックを選択することもできます。
      2. [選択] をクリックします。

    スポット

    1. [プロビジョニング モデル] セクションで、[VM プロビジョニング モデル] リストから [Spot] を選択します。
    2. 省略可: Compute Engine が VM をプリエンプトしたときに実行される終了アクションを選択するには、次の手順を完了します。

      1. [VM プロビジョニング モデルの詳細設定] セクションを開きます。
      2. [VM の終了時] リストで、次のいずれかのオプションを選択します。
        • プリエンプション中に VM を停止するには、[停止] を選択します(デフォルト)。
        • プリエンプション中に VM を削除するには [削除] をクリックします。
  6. インスタンスを作成して起動するには、[作成] をクリックします。

gcloud

VM を作成するには、gcloud compute instances create コマンドを使用します。

指定する必要があるパラメータは、このデプロイで使用している消費オプションによって異なります。消費オプションのプロビジョニング モデルに対応するタブを選択します。

Flex Start

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=none \
    --provisioning-model=FLEX_START \
    --request-valid-for-duration=REQUEST_VALID_FOR_DURATION \
    --max-run-duration=MAX_RUN_DURATION \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE

次のように置き換えます。

  • VM_NAME: VM の名前。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • REQUEST_VALID_FOR_DURATION: VM の作成リクエストが有効な期間。値は、日数、時間、分、秒として指定し、その後にそれぞれ dhms を続ける必要があります。たとえば、30 分の場合は 30m を指定し、1 日と 2 時間 3 分 4 秒の場合は 1d2h3m4s を指定します。期間を指定しない場合、デフォルトの期間は 90 秒です。

    ワークロードのゾーン要件に基づいて、VM 作成リクエストが成功する可能性を高めるために、次のいずれかの期間を指定することをおすすめします。

    • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒から 2 時間の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
    • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(0)に指定します。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
  • MAX_RUN_DURATION: リクエストされた VM を実行する期間。値は、日数、時間、分、秒として指定し、その後にそれぞれ dhms を続ける必要があります。たとえば、30 分の場合は 30m を指定し、1 日と 2 時間 3 分 4 秒の場合は 1d2h3m4s を指定します。値は 10 分~ 7 日の範囲で指定してください。

予約で制限

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE

次のように置き換えます。

  • VM_NAME: VM の名前。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
    • 任意のブロックにインスタンスを作成するには:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      また、同じブロックに複数のインスタンスを作成するには、各インスタンスの作成時に、ブロック コロケーションを指定する同じコンパクト プレースメント ポリシー(maxDistance=2)を適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

    • 特定のブロックにインスタンスを作成するには:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

スポット

gcloud compute instances create VM_NAME  \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-0,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-1,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-2,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-3,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-4,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-5,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-6,no-address \
    --network-interface=nic-type=MRDMA,network=RDMA_NAME_PREFIX-mrdma,subnet=RDMA_NAME_PREFIX-mrdma-sub-7,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

次のように置き換えます。

  • VM_NAME: VM の名前。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

REST

VM を作成するには、instances.insert メソッドPOST リクエストを送信します。

指定する必要があるパラメータは、このデプロイで使用している消費オプションによって異なります。消費オプションのプロビジョニング モデルに対応するタブを選択します。

Flex Start

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "NO_RESERVATION",
  },
  "scheduling":{
    "provisioningModel": "FLEX_START",
    "requestValidForDuration": {
      "seconds": REQUEST_VALID_FOR_DURATION
    },
    "maxRunDuration": {
      "seconds": MAX_RUN_DURATION
    },
    "instanceTerminationAction": "DELETE",
    "onHostMaintenance": "TERMINATE",
  }
}

次のように置き換えます。

  • PROJECT_ID: VM を作成するプロジェクトの ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • VM_NAME: VM の名前。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • REGION: サブネットワークのリージョン。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • REQUEST_VALID_FOR_DURATION: VM の作成リクエストが有効な期間。値は、日数、時間、分、秒として指定し、その後にそれぞれ dhms を続ける必要があります。たとえば、30 分の場合は 30m を指定し、1 日と 2 時間 3 分 4 秒の場合は 1d2h3m4s を指定します。期間を指定しない場合、デフォルトの期間は 90 秒です。

    ワークロードのゾーン要件に基づいて、VM 作成リクエストが成功する可能性を高めるために、次のいずれかの期間を指定することをおすすめします。

    • 厳しいゾーン要件があるワークロード: ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒から 2 時間の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。
    • 厳密なゾーン要件のないワークロード: VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(0)に指定します。このアクションは、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため VM の作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
  • MAX_RUN_DURATION: リクエストされた VM を実行する期間。値は秒数としてフォーマットする必要があります。たとえば、1 日の場合は 86400 を指定します。値は 10 分~ 7 日の範囲で指定してください。

予約で制限

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "reservationAffinity":{
    "consumeReservationType": "SPECIFIC_RESERVATION",
    "key": "compute.googleapis.com/reservation-name",
    "values":[
      "RESERVATION"
    ]
  },
  "scheduling":{
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

次のように置き換えます。

  • PROJECT_ID: VM を作成するプロジェクトの ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • VM_NAME: VM の名前。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • REGION: サブネットワークのリージョン。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • RESERVATION: 予約名または予約内の特定のブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。
    • 任意のブロックにインスタンスを作成するには:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      また、同じブロックに複数のインスタンスを作成するには、各インスタンスの作成時に、ブロック コロケーションを指定する同じコンパクト プレースメント ポリシー(maxDistance=2)を適用します。これにより、ポリシーが予約に適用され、Compute Engine によって同じブロックにインスタンスが作成されます。

    • 特定のブロックにインスタンスを作成するには:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  • TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって VM を停止(STOP)するか削除(DELETE)するかの指定。

スポット

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks":[
    {
      "boot":true,
      "initializeParams":{
        "diskSizeGb": "DISK_SIZE",
        "diskType": "hyperdisk-balanced",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "mode": "READ_WRITE",
      "type": "PERSISTENT"
    }
  ],
  "serviceAccounts": [
    {
      "email": "default",
      "scopes": [
        "https://www.googleapis.com/auth/cloud-platform"
      ]
    }
  ],
  "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "name": "external-nat",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
      "nicType": "GVNIC",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-1"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-2"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-3"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-4"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-5"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-6"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/RDMA_NAME_PREFIX-mrdma",
      "nicType": "MRDMA",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/RDMA_NAME_PREFIX-mrdma-sub-7"
    }
  ],
  "scheduling":
  {
    "provisioningModel": "SPOT",
    "instanceTerminationAction": "TERMINATION_ACTION"
  }
}

次のように置き換えます。

  • PROJECT_ID: VM を作成するプロジェクトの ID。
  • ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、各リージョンとゾーンで利用可能な GPU をご覧ください。
  • MACHINE_TYPE: VM に使用するマシンタイプ。詳細については、GPU マシンタイプをご覧ください。
  • VM_NAME: VM の名前。
  • DISK_SIZE: ブートディスクのサイズ(GB)。
  • IMAGE_PROJECT: OS イメージのプロジェクト ID。
  • IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているオペレーティング システムのリストについては、オペレーティング システムの詳細をご覧ください。
  • NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。
  • GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • REGION: サブネットワークのリージョン。
  • RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。
  • TERMINATION_ACTION: Compute Engine がインスタンスをプリエンプトするときに実行するアクション。STOP(デフォルト)または DELETE のいずれかです。

インスタンスを使用できるように準備する

GPU が割り当てられたインスタンスを使用できるように準備するには、次の操作を行います。

  1. A4 インスタンスまたは A3 Ultra インスタンスで割り当てられた GPU を使用できるようにするには、インスタンスに GPU ドライバがインストールされている必要があります。必要な GPU ドライバがインスタンスのイメージにすでに含まれている場合を除き、GPU ドライバをインストールします。

  2. 前のセクションで Spot VM を作成した場合は、次の手順を行います。

次のステップ