A3 High インスタンスまたは A2 インスタンスを作成する

このドキュメントでは、A2 または A3 High アクセラレータ最適化マシンシリーズのマシンタイプを使用する仮想マシン(VM)インスタンスの作成方法について説明します。

A3 High マシンタイプの場合、このドキュメントでは、8 個未満の GPU が割り当てられているマシンタイプのみを扱います。GPU が 8 個未満のこれらの A3 High マシンタイプは、Spot VM または Flex Start VM としてのみ作成できます。8 個の GPU が割り当てられた A3 インスタンスを作成するには、GPUDirect を有効にして A3 Mega、A3 High、または A3 Edge インスタンスを作成するをご覧ください。

複数の A3 VM または A2 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 が接続された VM を作成する

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

コンソール

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

    [インスタンスの作成] に移動
  2. [名前] フィールドに、インスタンスの一意の名前を入力します。リソースの命名規則をご覧ください。
  3. これらの GPU マシンタイプが利用可能なリージョンとゾーンを選択します。GPU のリージョンとゾーンをご覧ください。
  4. マシンタイプのセクションで、[GPU] を選択します。
    1. [GPU のタイプ] リストで、GPU のタイプを選択します。
      • A2 アクセラレータ最適化 VM の場合は、NVIDIA A100 40GB または NVIDIA A100 80GB を選択します。
      • A3 アクセラレータ最適化 VM の場合は、NVIDIA H100 80GB を選択します。
    2. [GPU の数] リストで、GPU の数を選択します。
  5. ブートディスクを次のように構成します。
    1. [OS とストレージ] セクションで、[変更] をクリックします。[ブートディスクの構成] ページが表示されます。
    2. [ブートディスクの構成] ページで、次の操作を行います。
      1. [公開イメージ] タブで、サポートされている Compute Engine イメージまたは Deep Learning VM Image を選択します。
      1. 40 GiB 以上のブートディスク サイズを指定します。
      2. ブートディスクのオプションを確認するには、[選択] をクリックします。
  6. プロビジョニング モデルを構成します。[詳細オプション] セクションの [VM プロビジョニング モデル] で、次のいずれかを選択します。
    • Standard: 汎用ワークロード用。
    • Flex Start: 柔軟な開始時間を許容できる短時間のワークロード。詳細については、Flex-start VM についてをご覧ください。
    • Spot: プリエンプト可能なフォールト トレラントなワークロード用。詳細については、Spot VM をご覧ください。
  7. 省略可: [VM の終了時] リストで、Compute Engine が Spot VM をプリエンプトしたとき、または Flex-start VM の実行期間が終了したときの動作を選択します。
    • プリエンプション中に VM を停止するには、[停止] を選択します(デフォルト)。
    • プリエンプション中に VM を削除するには [削除] をクリックします。
  8. VM を作成して起動するには、[作成] をクリックします。

gcloud

VM を作成して起動するには、次のフラグを指定して、gcloud compute instances create コマンドを使用します。GPU を使用した VM はライブ マイグレーションできません。必ず --maintenance-policy=TERMINATE フラグを設定してください。

サンプル コマンドには --provisioning-model フラグも示されています。このフラグは、VM のプロビジョニング モデルを設定します。このフラグは、8 個未満の GPU が割り当てられた A3 マシンタイプを作成する場合に必要です。SPOT または FLEX_START のいずれかに設定する必要があります。A2 マシンタイプの場合、このフラグは省略可能です。モデルを指定しない場合、標準プロビジョニング モデルが使用されます。詳細については、Compute Engine インスタンスのプロビジョニング モデルをご覧ください。

  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 \
      --provisioning-model=PROVISIONING_MODEL
  
次のように置き換えます。
  • VM_NAME: 新しい VM の名前
  • MACHINE_TYPE: 1 個、2 個、または 4 個の GPU を備えた A2 マシンタイプまたは A3 マシンタイプ。A3 マシンタイプの場合は、プロビジョニング モデルを指定する必要があります。
  • ZONE: VM のゾーン。このゾーンは、選択した 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 を使用する場合は、それらのイメージが属するプロジェクトを指定します。
  • PROVISIONING_MODEL: VM の作成に使用するプロビジョニング モデル。SPOT または FLEX_START のいずれかを指定できます。コマンドから --provisioning-model フラグを削除すると、標準プロビジョニング モデルが使用されます。このフラグは、GPU が 8 個未満の A3 VM を作成する場合に必要です。

REST

instances.insert メソッドに POST リクエストを送信します。GPU を使用した VM はライブ マイグレーションできません。必ず 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": "PERSISTENT",
    "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: 新しい VM の名前
  • PROJECT_ID: プロジェクト ID。
  • ZONE: VM のゾーン。このゾーンは、選択した GPU モデルをサポートしている必要があります。
  • MACHINE_TYPE: 1 個、2 個、または 4 個の GPU を備えた A2 マシンタイプまたは A3 マシンタイプ。A3 マシンタイプの場合は、プロビジョニング モデルを指定する必要があります。
  • PROVISIONING_MODEL: VM のプロビジョニング モデル。 SPOT または FLEX_START を指定します。このフィールドは、8 個未満の GPU を搭載した A3 VM を作成するときに必須です。A2 VM の場合、このフィールドは省略可能です。モデルを指定しない場合、標準プロビジョニング モデルが使用されます。詳細については、Compute Engine インスタンスのプロビジョニング モデルをご覧ください。
  • SOURCE_IMAGE_URI: 使用する特定のイメージまたはイメージ ファミリーの URI。次に例を示します。
    • 特定のイメージ: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-10-optimized-gcp-v20251017"
    • イメージ ファミリー: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-10-optimized-gcp"
    イメージ ファミリーを指定すると、Compute Engine はそのファミリー内のサポート対象の最新の OS イメージから VM を作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
  • DISK_SIZE: ブートディスクのサイズ(GB 単位)。ブートディスクのサイズは 40 GB 以上で指定します。
  • NETWORK: VM に使用する VPC ネットワーク。デフォルト ネットワークを使用するには、「default」を指定します。
追加の設定:
  • プロビジョニング モデルを指定するには、リクエストの scheduling オブジェクトに "provisioningModel": "PROVISIONING_MODEL" フィールドを追加します。これは、GPU が 8 個未満の A3 マシンタイプに必要です。Spot VM の作成を指定すると、onHostMaintenance フィールドと automaticRestart フィールドは無視されます。
    "scheduling":
      {
        "onHostMaintenance": "terminate",
        "automaticRestart": true,
        "provisioningModel": "PROVISIONING_MODEL"
      }
    

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

VM で GPU を使用するには、VM に GPU ドライバをインストールする必要があります。

以下の例では、Google Cloud CLI を使用してほとんどの VM を作成しています。ただし、 Google Cloud console または REST を使用して、これらの VM を作成することもできます。

次の例は、標準 OS イメージを使用して A3 Spot VM を作成する方法と、Deep Learning VM Images イメージを使用して A2 VM を作成する方法を示しています。

Debian 13 OS イメージ ファミリーを使用して A3 Spot VM を作成する

この例では、Debian 13 OS イメージ ファミリーを使用して A3(a3-highgpu-1g)Spot VM を作成します。

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a3-highgpu-1g \
    --provisioning-model=SPOT \
    --maintenance-policy=TERMINATE \
    --image-family=debian-13 \
    --image-project=debian-cloud \
    --boot-disk-size=200GB \
    --scopes=https://www.googleapis.com/auth/cloud-platform

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

  • VM_NAME: VM インスタンスの名前
  • PROJECT_ID: プロジェクト ID
  • ZONE: VM インスタンスのゾーン

VM に Vertex AI Workbench ユーザー管理ノートブック インスタンスを使用して A2 VM を作成する

この例では、tf2-ent-2-3-cu110 Deep Learning VM Image イメージを使用して A2 標準(a2-highgpu-1g)VM を作成します。この例では、ブートディスクのサイズやスコープなどのオプションのフラグが指定されています。

すでに NVIDIA ドライバと CUDA ライブラリがプリインストールされているため、DLVM イメージを使用するのが最も簡単な方法です。

これらのイメージは、パフォーマンスの最適化にも役立ちます。

NVIDIA A100 では、次の DLVM イメージがサポートされています。

  • common-cu110: NVIDIA ドライバと CUDA がプリインストールされています
  • tf-ent-1-15-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 1.15.3 がプリインストールされています
  • tf2-ent-2-1-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 2.1.1 がプリインストールされています
  • tf2-ent-2-3-cu110: NVIDIA ドライバ、CUDA、TensorFlow Enterprise 2.3.1 がプリインストールされています
  • pytorch-1-6-cu110: NVIDIA ドライバ、CUDA、Pytorch 1.6

使用可能な DLVM イメージと、イメージにインストールされているパッケージの詳細については、ディープ ラーニング VM のドキュメントをご覧ください。

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --machine-type=a2-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --image-family=tf2-ent-2-3-cu110 \
    --image-project=deeplearning-platform-release \
    --boot-disk-size=200GB \
    --metadata="install-nvidia-driver=True,proxy-mode=project_editors" \
    --scopes=https://www.googleapis.com/auth/cloud-platform

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

  • VM_NAME: VM インスタンスの名前
  • PROJECT_ID: プロジェクト ID
  • ZONE: VM インスタンスのゾーン

上記のコマンドの例では、VM の Vertex AI Workbench ユーザー管理ノートブック インスタンスも生成されます。ノートブックにアクセスするには、 Google Cloud コンソールで [Vertex AI Workbench] > [ユーザー管理のノートブック] ページに移動します。

[ユーザー管理のノートブック] ページに移動

マルチインスタンス GPU

マルチインスタンス GPU は、単一の NVIDIA A100 または NVIDIA H100 GPU を、同じ VM 内にある最大 7 つの独立した GPU インスタンスに分割します。これらは、それぞれ独自のメモリ、キャッシュ、ストリーミング マルチプロセッサを備え、同時に実行されます。この設定により、NVIDIA A100 および H100 GPU は、以前の GPU モデルと比較して最大 7 倍高い使用率で一貫した品質保証(QoS)を提供できます。

最大 7 つのマルチインスタンス GPU を作成できます。A100 40 GB GPU の場合、各マルチインスタンス GPU に 5 GB のメモリが割り当てられます。A100 80 GB GPU では、割り当てられるメモリがそれぞれ 2 倍の 10 GB になります。H100 80 GB GPU の場合、各マルチインスタンス GPU に 10 GB のメモリが割り当てられます。

複数インスタンス GPU の使用について詳しくは、NVIDIA マルチインスタンス GPU ユーザーガイドをご覧ください。

複数インスタンス GPU を作成する手順は次のとおりです。

  1. A2(A100)または A3(H100)アクセラレータ最適化 VM インスタンスを作成します。

  2. VM インスタンスに接続します。詳細については、Linux VM に接続するまたは Windows VM に接続するをご覧ください。

  3. NVIDIA GPU ドライバを有効にします。

  4. マルチインスタンス GPU を有効にします。

    sudo nvidia-smi -mig 1
    
  5. 利用可能な複数インスタンスの GPU シェイプを確認します。

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    出力は次のようになります。

    +-----------------------------------------------------------------------------+
    | GPU instance profiles:                                                      |
    | GPU   Name             ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                              Free/Total   GiB              CE    JPEG  OFA  |
    |=============================================================================|
    |   0  MIG 1g.10gb       19     7/7        9.62       No     16     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.10gb+me    20     1/1        9.62       No     16     1     0   |
    |                                                             1     1     1   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 1g.20gb       15     4/4        19.50      No     26     1     0   |
    |                                                             1     1     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 2g.20gb       14     3/3        19.50      No     32     2     0   |
    |                                                             2     2     0   |
    +-----------------------------------------------------------------------------+
    |   0  MIG 3g.40gb        9     2/2        39.25      No     60     3     0   |
    |                                                             3     3     0   |
    +-----------------------------------------------------------------------------+
    .......
    
  6. 必要なマルチインスタンス GPU(GI)と関連するコンピューティング インスタンス(CI)を作成します。これらのインスタンスを作成するには、プロファイル名(完全または短縮)とプロファイル ID の一方、または両方の組み合わせを指定します。詳細については、 GPU インスタンスの作成をご覧ください。

    次の例では、プロファイル ID(9)を使用して 2 つの MIG 3g.20gb GPU インスタンスを作成します。

    -C フラグも指定されているため、必要なプロファイル用の関連付けられたコンピューティング インスタンスが作成されます。

    sudo nvidia-smi mig -cgi 9,9 -C
    
  7. 2 つのマルチインスタンス GPU が作成されていることを確認します。

    sudo nvidia-smi mig -lgi
    
  8. GI と、それに対応する CI の両方が作成されていることを確認します。

    sudo nvidia-smi
    

    出力は次のようになります。

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA H100 80G...  Off  | 00000000:04:00.0 Off |                   On |
    | N/A   33C    P0    70W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA H100 80G...  Off  | 00000000:05:00.0 Off |                   On |
    | N/A   32C    P0    69W / 700W |     39MiB / 81559MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     19MiB / 40192MiB | 60      0 |  3   0    3    0    3 |
    |                  |      0MiB / 65535MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    ......
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

次のステップ