G2 インスタンスまたは G4 インスタンスを作成する

このドキュメントでは、G2 または G4 マシンシリーズのマシンタイプを使用する仮想マシン(VM)インスタンスを作成する方法について説明します。これらの G シリーズのアクセラレータ最適化マシンタイプは、グラフィック負荷の高いアプリケーションの実行や、費用対効果の高い ML 推論に適しています。

これらの VM はオンデマンド VM として作成できます。コストを削減するには、G2 と G4 の Spot VM を作成するか、G2 Flex-start VM を作成することもできます。GPU が割り当てられた VM の作成の詳細については、GPU が割り当てられたインスタンスの作成の概要をご覧ください。

複数の G2 VM または G4 VM を作成するには、次のいずれかを使用します。

始める前に

  • 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 を使用して認証するをご覧ください。

必要なロール

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

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

必要な権限

VM を作成するには、次の権限が必要です。

  • プロジェクトに対する 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

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

GPU が接続されているインスタンスを作成する

G2 または G4 アクセラレータ最適化インスタンスは、 Google Cloud コンソール、Google Cloud CLI、または REST を使用して作成できます。

コンソール

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

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

  2. [名前] フィールドに、インスタンスの一意の名前を入力します。リソースの命名規則をご覧ください。

  3. これらの GPU マシンタイプが利用可能なリージョンとゾーンを選択します。GPU のリージョンとゾーンをご覧ください。

  4. マシンタイプのセクションで、[GPU] を選択します。

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

      • G2 インスタンスの場合は NVIDIA L4 を選択します。
      • G4 インスタンスの場合は NVIDIA RTX PRO 6000 を選択します。
    2. [GPU の数] リストで、GPU の数を選択します。

      • G4 インスタンスの場合、選択した GPU の数に基づいて、対応するマシンタイプがコンソールで自動的に選択されます。
      • G2 インスタンスの場合は、以下を確認してください。

        • GPU を 1 つ選択すると、ワークロードに適した vCPU 数とメモリ量が事前に設定されているマシンタイプのセットから選択できます。
        • 2 つ以上の GPU を選択すると、選択した GPU の数に基づいて、対応するマシンタイプがコンソールで自動的に選択されます。

        G2 インスタンスでは、カスタム マシンタイプを指定することもできます。インスタンスの vCPU の数とメモリ容量を指定するには、スライダーをドラッグするか、テキスト ボックスに値を入力します。vCPU の数とメモリを変更すると、コンソールにインスタンスの見積もり費用が表示されます。

    3. 省略可: G2 マシンシリーズと G4 マシンシリーズは、グラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)をサポートしています。インスタンスでグラフィックを多用するワークロードを実行する場合は、[仮想ワークステーション(NVIDIA GRID)を有効にする] を選択します。

  5. ブートディスクを次のように構成します。

    1. [OS とストレージ] セクションで、[変更] をクリックします。[ブートディスクの構成] ページが表示されます。
    2. [ブートディスクの構成] ページで、次の操作を行います。

      1. [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
      2. ブートディスクのサイズは 40 GiB 以上で指定します。
      3. ブートディスクのオプションを確認するには、[選択] をクリックします。
  6. 省略可: ローカル SSD を追加します。ローカル SSD は、高速のスクラッチ ディスクとして、または I/O ボトルネックを防止しながらデータを GPU にフィードする場合に使用できます。ローカル SSD をインスタンスに追加するには、次の操作を行います。

    1. [OS とストレージ] セクションで、[ローカル SSD を追加] をクリックします。
    2. [インターフェース] で、[NVMe] を選択します。
    3. [ディスク容量] で、アタッチするローカル SSD の数を選択します。インスタンスあたりのローカル SSD ディスクの最大数については、ローカル SSD のマシンシリーズの上限をご覧ください。
  7. 省略可: g4-standard-384 インスタンスのネットワーク帯域幅を増やすには、複数のネットワーク インターフェースを構成します。最大 2 つのネットワーク インターフェースを構成できます。この構成では、デュアル ネットワーク インターフェース(2x 200 Gbps)を持つ g4-standard-384 インスタンスが作成されます。[ネットワーキング] セクションで、次の操作を行います。

    1. デフォルトのネットワーク インターフェースを開きます。
    2. 最初のインターフェースのネットワークサブネットワークを指定します。
    3. [ネットワーク インターフェース カード] で、[gVNIC] を選択します。
    4. [ネットワーク インターフェースを追加] をクリックして、2 つ目のインターフェースを追加します。2 番目のネットワーク インターフェースを次のように構成します。

      1. 別の VPC の [ネットワーク] と [サブネットワーク] を選択します。各ネットワーク インターフェースは、一意の VPC ネットワークに存在する必要があります。
      2. [ネットワーク インターフェース カード] で、[gVNIC] を選択します。
  8. 省略可: 別のプロビジョニング モデルを構成して、費用を削減します。[詳細オプション] セクションの [VM プロビジョニング モデル] で、次のいずれかを選択します。

    • (G2 のみ)Flex Start: 開始時間の柔軟性を許容できる短時間のワークロード。詳細については、Flex-start VM についてをご覧ください。

    • Spot: プリエンプト可能なフォールト トレラントなワークロード用。詳細については、Spot VM をご覧ください。

  9. 省略可: [VM の終了時] リストで、Compute Engine が Spot VM をプリエンプトしたとき、または Flex-start VM の実行期間が終了したときの動作を選択します。

    • プリエンプション中に VM を停止するには、[停止] を選択します(デフォルト)。
    • プリエンプション中に VM を削除するには [削除] をクリックします。
  10. VM を作成して起動するには、[作成] をクリックします。

gcloud

インスタンスを作成して起動するには、gcloud compute instances create コマンドを使用します。次のコマンドには、必須フラグが含まれています。

  gcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --zone=ZONE \
      --boot-disk-size=DISK_SIZE \
      --image=IMAGE \
      --image-project=IMAGE_PROJECT \
      --maintenance-policy=TERMINATE \
      --restart-on-failure
次のように置き換えます。
  • VM_NAME: 新しいインスタンスの名前
  • MACHINE_TYPE: 選択したマシンタイプ。次のいずれかを選択します。

    • G4 マシンタイプ
    • G2 マシンタイプ。 G2 マシンタイプはカスタムメモリもサポートしています。メモリは 1,024 MB の倍数とし、サポートされているメモリ範囲内に収める必要があります。たとえば、4 個の vCPU と 19 GB のメモリを備えたインスタンスを作成するには、--machine-type=g2-custom-4-19456 を指定します。
  • ZONE: インスタンスのゾーン。このゾーンは、選択した GPU モデルをサポートしている必要があります。
  • DISK_SIZE: ブートディスクのサイズ(GiB 単位)。ブートディスクのサイズは 40 GiB 以上で指定します。
  • IMAGE: GPU をサポートするオペレーティング システム イメージ。イメージ ファミリーの最新イメージを使用する場合は、--image フラグを --image-family フラグに置き換え、その値を GPU をサポートするイメージ ファミリーに設定します。例: --image-family=rocky-linux-8-optimized-gcp
    カスタム イメージまたは Deep Learning VM Image を指定することもできます。
  • IMAGE_PROJECT: OS イメージが属する Compute Engine イメージ プロジェクト。カスタム イメージまたは Deep Learning VM Image を使用する場合は、それらのイメージが属するプロジェクトを指定します。

オプション フラグ

ワークロードまたはオペレーティング システムのニーズに合わせてインスタンスをさらに構成するには、gcloud compute instances create コマンドの実行時に次のフラグを 1 つ以上指定します。

機能 説明
プロビジョニング モデル インスタンスのプロビジョニング モデルを設定します。SPOT または FLEX_START を指定します。FLEX_START は G4 インスタンスではサポートされていません。モデルを指定しない場合、標準モデルが使用されます。詳細については、 Compute Engine インスタンスのプロビジョニング モデルをご覧ください。
--provisioning-model=PROVISIONING_MODEL
仮想ワークステーション グラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)を指定します。
--accelerator=type=VWS_ACCELERATOR_TYPE,count=VWS_ACCELERATOR_COUNT

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

  • VWS_ACCELERATOR_TYPE には、次のいずれかを選択します。
    • G4 インスタンスの場合は、nvidia-rtx-pro-6000-vws を指定します。
    • G2 インスタンスの場合は、nvidia-l4-vws を指定します。
  • VWS_ACCELERATOR_COUNT には、必要な仮想 GPU の数を指定します。
ローカル SSD 1 つ以上のローカル SSD をインスタンスにアタッチします。ローカル SSD は、高速のスクラッチ ディスクとして、または I/O ボトルネックを防止しながらデータを GPU にフィードする場合に使用できます。
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme \
    --local-ssd=interface=nvme ...
VM インスタンスごとにアタッチできるローカル SSD ディスクの最大数については、ローカル SSD の上限をご覧ください。
ネットワーク インターフェース 複数のネットワーク インターフェースをインスタンスにアタッチします。g4-standard-384 インスタンスには、最大 2 つのネットワーク インターフェースを接続できます。このフラグを使用すると、デュアル ネットワーク インターフェース(2x 200 Gbps)を持つインスタンスを作成できます。各ネットワーク インターフェースは、一意の VPC ネットワークに存在する必要があります。

   --network-interface=network=VPC_NAME_1,subnet=SUBNET_NAME_1,nic-type=GVNIC \
   --network-interface=network=VPC_NAME_2,subnet=SUBNET_NAME_2,nic-type=GVNIC
   

デュアル ネットワーク インターフェースは、g4-standard-384 マシンタイプでのみサポートされています。

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

  • VPC_NAME: VPC ネットワークの名前。
  • SUBNET_NAME: 指定された VPC ネットワークの一部であるサブネットの名前。

REST

instances.insert メソッドに POST リクエストを送信します。GPU を使用するインスタンスはライブ マイグレーションできないため、onHostMaintenance パラメータを TERMINATE に設定する必要があります。次のコマンドには、必須フラグが含まれています。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks":[
      {
         "type":"projects/PROJECT_ID/zones/ZONE/diskTypes/hyperdisk-balanced",
         "initializeParams":{
            "diskSizeGb":"DISK_SIZE",
            "sourceImage":"SOURCE_IMAGE_URI"
         },
         "boot":true
      }
   ],
   "name":"VM_NAME",
   "networkInterfaces":[
      {
         "network":"projects/PROJECT_ID/global/networks/NETWORK"
      }
   ],
   "scheduling":{
      "onHostMaintenance":"terminate",
      "automaticRestart":true
   }
}
次のように置き換えます。
  • VM_NAME: 新しいインスタンスの名前
  • PROJECT_ID: 実際のプロジェクト ID。
  • ZONE: インスタンスのゾーン。このゾーンは、選択した GPU モデルをサポートしている必要があります。
  • MACHINE_TYPE: 選択したマシンタイプ。次のいずれかを選択します。
    • G4 マシンタイプ
    • G2 マシンタイプ。 G2 マシンタイプはカスタムメモリもサポートしています。メモリは 1,024 MB の倍数とし、サポートされているメモリ範囲内に収める必要があります。たとえば、4 個の vCPU と 19 GB のメモリを備えたインスタンスのマシンタイプ名は g2-custom-4-19456 になります。
  • SOURCE_IMAGE_URI: 使用する特定のイメージまたはイメージ ファミリーの URI。次に例を示します。
    • 特定のイメージ: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • イメージ ファミリー: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
    イメージ ファミリーを指定すると、Compute Engine はそのファミリー内のサポート対象の最新の OS イメージからインスタンスを作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
  • DISK_SIZE: ブートディスクのサイズ(GiB 単位)。ブートディスクのサイズは 40 GiB 以上で指定します。

オプション フラグ

ワークロードまたはオペレーティング システムのニーズに合わせてインスタンスをさらに構成するには、instances.insert メソッドの実行時に次のフラグを 1 つ以上含めます。

機能 説明
プロビジョニング モデル 費用を削減するには、リクエストの scheduling オブジェクトに "provisioningModel": "PROVISIONING_MODEL" フィールドを追加して、別のプロビジョニング モデルを指定します。Spot VM の作成を指定すると、onHostMaintenance フィールドと automaticRestart フィールドは無視されます。詳細については、 Compute Engine インスタンスのプロビジョニング モデルをご覧ください。
    "scheduling":
     {
       "onHostMaintenance": "terminate",
       "provisioningModel": "PROVISIONING_MODEL"
     }
  

PROVISIONING_MODEL を次のいずれかに置き換えます。

  • STANDARD: 標準インスタンス(デフォルト)。
  • SPOT: Spot VM。
  • FLEX_START: Flex Start VM。Flex Start VM は最大 7 日間実行され、GPU などの需要の高いリソースを割引料金で取得できます。このプロビジョニング モデルは、G4 インスタンスではサポートされていません。
仮想ワークステーション グラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)を指定します。
   "guestAccelerators":
     [
       {
         "acceleratorCount": VWS_ACCELERATOR_COUNT,
         "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/VWS_ACCELERATOR_TYPE"
       }
     ]
    

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

  • VWS_ACCELERATOR_TYPE には、次のいずれかを選択します。
    • G4 インスタンスの場合は、nvidia-rtx-pro-6000-vws を指定します。
    • G2 インスタンスの場合は、nvidia-l4-vws を指定します。
  • VWS_ACCELERATOR_COUNT には、必要な仮想 GPU の数を指定します。
ローカル SSD 1 つ以上のローカル SSD をインスタンスにアタッチします。ローカル SSD は、高速のスクラッチ ディスクとして、または I/O ボトルネックを防止しながらデータを GPU にフィードする場合に使用できます。
   {
     "type": "SCRATCH",
     "autoDelete": true,
     "initializeParams": {
       "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/local-nvme-ssd"
     }
   }
  
VM インスタンスごとにアタッチできるローカル SSD ディスクの最大数については、ローカル SSD の上限をご覧ください。
ネットワーク インターフェース 複数のネットワーク インターフェースをインスタンスにアタッチします。g4-standard-384 インスタンスには、最大 2 つのネットワーク インターフェースを接続できます。これにより、デュアル ネットワーク インターフェース(2x 200 Gbps)を持つインスタンスが作成されます。各ネットワーク インターフェースは、一意の VPC ネットワークに存在する必要があります。

   "networkInterfaces":
   [
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_1",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_1",
       "nicType": "GVNIC"
     },
     {
       "network": "projects/PROJECT_ID/global/networks/VPC_NAME_2",
       "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME_2",
       "nicType": "GVNIC"
     }
   ]
  

デュアル ネットワーク インターフェースは、g4-standard-384 マシンタイプでのみサポートされています。

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

  • VPC_NAME: VPC ネットワークの名前。
  • SUBNET_NAME: 指定された VPC ネットワークの一部であるサブネットの名前。

ドライバをインストールする

インスタンスを作成したら、GPU を使用できるようにインスタンスのドライバをインストールする必要があります。インストールする必要があるドライバは、インスタンスの作成時にグラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)を有効にしたかどうかによって異なります。

(省略可)マルチインスタンス GPU モード(G4 のみ)

マルチインスタンス GPU(MIG)モードは、サポートされている NVIDIA GPU で有効にできる機能です。

G4 インスタンスを作成したら、マシンに接続されている単一の NVIDIA RTX PRO 6000 GPU でマルチインスタンス GPU(MIG)モードを有効にできます。MIG モードを有効にすると、単一の GPU が最大 7 つの独立した GPU インスタンスに分割されます。各インスタンスは、それぞれ独自のメモリ、キャッシュ、ストリーミング マルチプロセッサを備え、同時に実行されます。これらの GPU インスタンスでさまざまなワークロードを並行して実行できます。

マルチインスタンス GPU の使用について詳しくは、NVIDIA のドキュメントの MIG のスタートガイドをご覧ください。

次のステップ