このドキュメントでは、A4X マシンタイプを使用するスタンドアロン仮想マシン(VM)インスタンスを作成する手順について説明します。このマシンタイプの詳細については、A4X をご覧ください。
VM またはクラスタを作成するその他の方法については、デプロイ オプションの概要をご覧ください。
制限事項
スタンドアロン A4X VM を作成する場合、次の制限が適用されます。
- このマシンタイプを使用するインスタンスは、継続利用割引またはフレキシブル確約利用割引の対象外となります。
- インスタンスは、特定のリージョンとゾーンでのみ作成できます。
- Persistent Disk(リージョンまたはゾーン)は使用できません。Google Cloud Hyperdisk のみを使用できます。
- このマシンタイプは、NVIDIA Grace プラットフォームでのみ使用できます。
- A4X では、マシンタイプの変更はサポートされていません。このマシンタイプに切り替えるには、新しいインスタンスを作成する必要があります。
- このマシンタイプでは Windows オペレーティング システムを実行できません。サポートされている Linux オペレーティング システムの一覧については、GPU インスタンスでサポートされているオペレーティング システムをご覧ください。
- A4X インスタンスで
ethtool -Sを使用して GPU ネットワーキングをモニタリングすると、_phyで終わる物理ポート カウンタが更新されません。これは、MRDMA 仮想関数(VF)アーキテクチャを使用するインスタンスの想定される動作です。詳細については、MRDMA 関数とネットワーク モニタリング ツールをご覧ください。 - A4X インスタンスは、以下をサポートしていません。
- 2026 年 2 月 4 日より前に作成された Hyperdisk ML ディスクを A4X マシンタイプにアタッチすることはできません。
始める前に
VM を作成する前に、次の手順を完了します(まだ完了していない場合)。
- 使用オプションを選択する: 選択した使用オプションによって、GPU リソースの取得方法と使用方法が決まります。詳細については、使用オプションを選択するをご覧ください。
- 容量を取得する: 容量を取得するプロセスは、使用オプションごとに異なります。選択した使用オプションの容量を取得するプロセスについては、容量の概要をご覧ください。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部にある Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 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
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
A4X の基礎
A4X クラスタは、大規模な非ブロッキング ネットワーク パフォーマンスを容易にするために、ブロックとサブブロックの階層に編成されています。このトポロジを理解することは、容量を予約してワークロードをデプロイする際に重要です。
- A4X インスタンス
- A4X インスタンスは、4 個の GPU がアタッチされた単一の A4X マシンタイプです。
- サブブロック
- サブブロックは、A4X 容量の基本単位です。A4X の場合、サブブロックは 18 個の A4X インスタンス(72 個の GPU)で構成されます。これらのインスタンスは NVLink ドメインを形成し、マルチノード NVLink システムを使用して接続されます。
1x72トポロジを指定するコンパクト プレースメント ポリシーを適用して、A4X サブブロックを作成します。 - ブロック
- A4X ブロックは 25 個のサブブロック(NVLink ドメイン)で構成され、最大 450 個の A4X インスタンス(1,800 個の GPU)を合計します。サブブロックはレール整列型で、効率的なスケーリングを実現します。各サブブロックには、コンパクト プレースメント ポリシーが必要です。したがって、単一の A4X ブロックに対して 25 個のコンパクト プレースメント ポリシーを作成できます。
次の表に、A4X インスタンスでサポートされているトポロジ オプションを示します。
トポロジ(gpuTopology) |
GPU の数 | インスタンス数 |
|---|---|---|
1x72 |
72 | 18 |
概要
A4X マシンタイプを使用してインスタンスを作成する手順は次のとおりです。
- VPC ネットワークを作成する。
- コンパクト プレースメント ポリシーを作成する
- インスタンスを作成する
- GPU ドライバをインストールする
- 省略可: NVIDIA マルチインスタンス GPU モードを有効にする
VPC ネットワークを作成する
A4X マシンタイプのネットワークを設定するには、次のネットワーク インターフェース用に 3 つの VPC ネットワークを作成します。
- gVNIC ネットワーク インターフェース(NIC)用の 2 つの標準 VPC ネットワーク。NIC は、これらの VPC ネットワークをホスト間通信に使用します。
- 複数の A4X サブブロックを作成する場合は、CX-7 NIC 用の RoCE ネットワーク プロファイル を含む 1 つの VPC ネットワーク。VM インスタンスの RoCE VPC ネットワークには、4 つのサブネット(CX-7 NIC ごとに 1 つのサブネット)が必要です。これらの NIC は RDMA over Converged Ethernet(RoCE)を使用し、複数の A4X サブブロックへのスケールアウトに不可欠な高帯域幅で低レイテンシの通信を提供します。
NIC の配置の詳細については、ネットワーク帯域幅と NIC の配置を確認するをご覧ください。
手順ガイドに沿って、手動または自動(提供されたスクリプト)でネットワークを作成します。
手順ガイド
ネットワークを作成するには、次の操作を行います。
- gVNIC ネットワーク インターフェースの標準 VPC ネットワークを作成するには、Virtual Private Cloud ネットワークの作成と管理をご覧ください。
- VM インスタンス(
roce)の RoCE VPC ネットワークを作成するには、RDMA NIC 用の Virtual Private Cloud ネットワークを作成するをご覧ください。
これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定します。A4X マシンタイプの場合、推奨される MTU は 8896 バイトです。他の GPU マシンタイプの推奨 MTU 設定を確認するには、GPU マシンタイプの MTU 設定をご覧ください。
スクリプト
ネットワークを作成する手順は次のとおりです。
これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定します。A4X マシンタイプの場合、推奨される MTU は 8896 バイトです。他の GPU マシンタイプの推奨 MTU 設定を確認するには、GPU マシンタイプの MTU 設定をご覧ください。
-
次のスクリプトを使用して、gVNIC の標準 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=192.168.$N.0/24 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=192.168.0.0/16 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 複数の A4X サブブロックが必要な場合は、次のスクリプトを使用して、VM インスタンス(
roce)の RoCE VPC ネットワークと、各 A4X インスタンスの 4 つの CX-7 NIC のサブネットを作成します。#!/bin/bash # 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 RDMA NICs 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 3); do gcloud compute networks subnets create RDMA_NAME_PREFIX-mrdma-sub-$N \ --network=RDMA_NAME_PREFIX-mrdma \ --region=REGION \ --range=192.168.$((N+2)).0/24 # offset to avoid overlap with gVNICs doneGVNIC_NAME_PREFIX: gVNIC の標準 VPC ネットワークとサブネットに使用するカスタム名の接頭辞。-
RDMA_NAME_PREFIX: VM インスタンス(roce)の RoCE VPC ネットワークと CX-7 NIC のサブネットに使用するカスタム名の接頭辞。 ZONE: 使用するマシンタイプが使用可能なゾーン(us-central1-aなど)を指定します。リージョンの詳細については、 リージョンおよびゾーン別の GPU の可用性をご覧ください。REGION: サブネットを作成するリージョン。このリージョンは、指定したゾーンに対応している必要があります。たとえば、ゾーンがus-central1-aの場合、リージョンはus-central1です。IP_RANGE: SSH ファイアウォール ルールに使用する IP 範囲。- 省略可: VPC ネットワーク リソースが正常に作成されたことを確認するには、 Google Cloud コンソールでネットワーク設定を確認します。
- Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
- リストで、前の手順で作成したネットワークを検索します。
- サブネット、ファイアウォール ルール、その他のネットワーク設定を表示するには、ネットワークの名前をクリックします。
次のように置き換えます。
コンパクト プレースメント ポリシーを作成する
コンパクト プレースメント ポリシーを作成するには、次のいずれかのオプションを選択します。gcloud
コンパクト プレースメント ポリシーを作成するには、gcloud beta compute resource-policies create group-placement コマンドを使用します。
gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--gpu-topology=1x72 \
--region=REGION
次のように置き換えます。
POLICY_NAME: コンパクト プレースメント ポリシーの名前。REGION: コンパクト プレースメント ポリシーを作成するリージョン。インスタンスを作成するゾーンを含むリージョンを指定し、使用するマシンタイプがそのリージョンで使用可能であることを確認します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
REST
コンパクト プレースメント ポリシーを作成するには、ベータ版の resourcePolicies.insert メソッドに POST リクエストを送信します。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"gpuTopology": "1x72"
}
}
次のように置き換えます。
PROJECT_ID: プロジェクト ID。POLICY_NAME: コンパクト プレースメント ポリシーの名前。REGION: コンパクト プレースメント ポリシーを作成するリージョン。インスタンスを作成するゾーンを含むリージョンを指定し、使用するマシンタイプがそのリージョンで使用可能であることを確認します。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性をご覧ください。
A4X インスタンスを作成する
ワークロード アーキテクチャに沿った作成オプションを選択します。
- 72 個の GPU を備えた NVLink ドメイン(1x72 トポロジ)にインスタンスを作成する: マルチノード NVLink ファブリックで最大 18 個のインスタンス(72 個の GPU)にわたる高帯域幅、低レイテンシの GPU 通信を必要とする大規模な分散トレーニング、ファインチューニング、マルチノード推論ワークロードに最適です。コンパクト プレースメント ポリシーを使用する必要があります。
- スタンドアロンの 4 GPU インスタンス(NVL4)を作成する: 単一ノードのワークロード、小規模なモデル推論、バッチ処理、4 つの GPU に収まり、ノード内 NVLink ピアリングのみを必要とするインタラクティブな開発に最適です。サブブロックをスタンドアロン インスタンスに分割するには、特定の予約サブブロックをターゲットにする必要があります。コンパクト プレースメント ポリシーは必要ありません。
72 個の GPU NVLink ドメイン(1x72 トポロジ)にインスタンスを作成する
1x72 の GPU トポロジを取得するには、18 個の A4X インスタンスを作成します。インスタンスを作成するときに、gpuTopology フィールドを指定するコンパクト プレースメント ポリシーを適用します。ポリシーを適用すると、Compute Engine は 1 つのサブブロックに 18 個の A4X インスタンスをすべて作成し、NVLink ドメインを使用します。サブブロックに A4X インスタンスの容量がない場合、インスタンスの作成リクエストは失敗します。
NVLink ドメイン内の 18 個のインスタンスに接続する A4X インスタンスを作成するには、コンパクト プレースメント ポリシーを適用し、マルチ NIC RDMA ネットワーキングを構成します。
A4X インスタンスを作成するには、次のいずれかのオプションを選択します。
次のコマンドは、インスタンスのアクセス スコープも設定します。権限管理を簡素化するには、インスタンスのアクセス スコープをcloud-platform アクセスに設定し、IAM ロールを使用してインスタンスがアクセスできるサービスを定義することをおすすめします。詳細については、スコープのベスト プラクティスをご覧ください。gcloud
A4X インスタンスを作成するには、
gcloud compute instances create コマンドを使用します。
A4X インスタンスは、次の予約タイプをサポートしています。
- AI Hypercomputer の将来の予約
- カレンダー モードの将来の予約
これらのタイプの予約を使用するには、インスタンスが予約にバインドされたプロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。
gcloud compute instances create INSTANCE_NAME \
--machine-type=a4x-highgpu-4g \
--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 \
--reservation-affinity=specific \
--reservation=RESERVATION \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--resource-policies=POLICY_NAME
次のように置き換えます。
INSTANCE_NAME: A4X インスタンスの名前。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。IMAGE_PROJECT: OS イメージのプロジェクト ID。ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。-
RESERVATION: 予約名、ブロック、または予約内のサブブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。- 単一のブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME - 特定のブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME - 特定のサブブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
- 単一のブロックに A4X インスタンスを作成するには:
TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって A4X インスタンスを停止(STOP)するか削除(DELETE)するかの指定。POLICY_NAME: コンパクト プレースメント ポリシーの名前。
REST
A4X インスタンスを作成するには、
instances.insert メソッドに POST リクエストを送信します。
A4X インスタンスは、次の予約タイプをサポートしています。
- AI Hypercomputer の将来の予約
- カレンダー モードの将来の予約
これらのタイプの予約を使用するには、インスタンスが予約にバインドされたプロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
"name": "INSTANCE_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"
}
],
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION"
]
},
"scheduling": {
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": true
},
"resourcePolicies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
]
}
次のように置き換えます。
PROJECT_ID: A4X インスタンスを作成するプロジェクトのプロジェクト ID。ZONE: 使用するマシンタイプが利用可能なゾーン。コンパクト プレースメント ポリシーと同じリージョン内のゾーンを使用する必要があります。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。INSTANCE_NAME: A4X インスタンスの名前。DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。IMAGE_PROJECT: OS イメージのプロジェクト ID。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。REGION: サブネットワークのリージョン。RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。-
RESERVATION: 予約名、ブロック、または予約内のサブブロック。予約名または使用可能なブロックを取得するには、予約容量を表示するをご覧ください。インスタンスの配置の要件に基づいて、次のいずれかを選択します。- 単一のブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME - 特定のブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME - 特定のサブブロックに A4X インスタンスを作成するには:
projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
- 単一のブロックに A4X インスタンスを作成するには:
TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって A4X インスタンスを停止(STOP)するか削除(DELETE)するかの指定。PROJECT_ID: コンパクト プレースメント ポリシーのプロジェクト ID。REGION: コンパクト プレースメント ポリシーのリージョン。POLICY_NAME: コンパクト プレースメント ポリシーの名前。
スタンドアロンの 4 GPU インスタンス(NVL4)を作成する
NVL4 は NVLink ドメインをパーティショニングして、NVLink ファブリック上に独立したインスタンスを作成します。スタンドアロン NVL4 インスタンスを作成するには、予約内のどのサブブロックをパーティショニングするかを指定する必要があります。各 A4X インスタンスは独立して動作するため、コンパクト プレースメント ポリシーを使用する必要はありません。インスタンス内ワークロードでは、ノード内の 4 つの GPU NVLink 通信が完全にサポートされています。
スタンドアロン NVL4 インスタンスを作成する前に、次の点に注意してください。
- 容量とサブブロックのターゲット設定: スタンドアロン NVL4 インスタンスを作成するには、特定の予約サブブロックをターゲットにする必要があります。予約容量のアトミック単位はサブブロック全体です。これは、18 個のインスタンスまたは 72 個の GPU の NVLink ドメインです。単一の NVL4 インスタンスを個別に予約することはできません。NVL4 インスタンスをデプロイするときに、予約されたサブブロックを最大 18 個の独立したノードにパーティショニングします。ホスト プロジェクトのサブブロック予約をコンシューマー プロジェクトと共有することもできます。
- 静的パーティショニングと構成変更: サブブロックのデプロイは静的です。サブブロックの構成を変更する(
1x72マルチノード NVLink ドメインからスタンドアロン NVL4 インスタンスに切り替えるなど)には、そのサブブロック内の既存のインスタンスをすべて削除してから、新しい構成で再作成する必要があります。 - サブブロック内の混合デプロイ: 同じサブブロック予約内のインスタンスを、スタンドアロンの Compute Engine インスタンスと GKE ノードプールに割り当てることができます。たとえば、開発用に 12 個のスタンドアロン Compute Engine インスタンスをプロビジョニングし、GKE ノードプールに 6 個のインスタンスをプロビジョニングできます。
- NCCL と NVLS の構成: NVL4 インスタンス間で NCCL を使用して分散ワークロードを実行する場合は、環境変数
NCCL_NVLS_ENABLE=0を設定して NVLink SHARP を無効にします。 Google Cloud は、パーティショニングされたドメインでのマルチノード通信用に CUDA マルチキャスト グループを構成しません。
18 個のインスタンスまたは 72 個の GPU で構成されるサブブロック全体を予約し、18 個のスタンドアロン A4X インスタンスすべてをデプロイする場合は、作成コマンドを 18 回実行し、各コマンドが同じ予約サブブロックをターゲットにしていることを確認します。
4 つの GPU を使用するスタンドアロン A4X インスタンスを作成するには、次のいずれかのオプションを選択します。
gcloud
A4X インスタンスを作成するには、
gcloud compute instances create コマンドを使用します。
A4X インスタンスは、次の予約タイプをサポートしています。
- AI Hypercomputer の将来の予約
- カレンダー モードの将来の予約
これらのタイプの予約を使用するには、インスタンスが予約にバインドされたプロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。
gcloud compute instances create INSTANCE_NAME \
--machine-type=a4x-highgpu-4g \
--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 \
--reservation-affinity=specific \
--reservation=RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--maintenance-policy=TERMINATE \
--restart-on-failure
次のように置き換えます。
INSTANCE_NAME: A4X インスタンスの名前。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。IMAGE_PROJECT: OS イメージのプロジェクト ID。ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。RESERVATION_NAME: 予約の名前。BLOCK_NAME: 予約内の特定のブロックの名前。SUB_BLOCK_NAME: ブロック内の特定のサブブロックの名前。TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって A4X インスタンスを停止(STOP)するか削除(DELETE)するかの指定。
REST
A4X インスタンスを作成するには、
instances.insert メソッドに POST リクエストを送信します。
A4X インスタンスは、次の予約タイプをサポートしています。
- AI Hypercomputer の将来の予約
- カレンダー モードの将来の予約
これらのタイプの予約を使用するには、インスタンスが予約にバインドされたプロビジョニング モデルを使用する必要があります。たとえば、次の作成パラメータを使用します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-highgpu-4g",
"name": "INSTANCE_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"
}
],
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME"
]
},
"scheduling": {
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "TERMINATION_ACTION",
"onHostMaintenance": "TERMINATE",
"automaticRestart": true
}
}
次のように置き換えます。
PROJECT_ID: A4X インスタンスを作成するプロジェクトのプロジェクト ID。ZONE: 使用するマシンタイプが利用可能なゾーン。リージョンの詳細については、リージョンおよびゾーン別の GPU の可用性 をご覧ください。INSTANCE_NAME: A4X インスタンスの名前。DISK_SIZE: ブートディスクのサイズ(GB)。詳細については、ディスクのタイプに応じて、Google Cloud Hyperdisk のサイズ上限または Persistent Disk のサイズ上限をご覧ください。IMAGE_PROJECT: OS イメージのプロジェクト ID。IMAGE_FAMILY: 使用する OS イメージのイメージ ファミリー。サポートされているすべてのオペレーティング システムの一覧については、サポートされているオペレーティング システムをご覧ください。NETWORK_PROJECT_ID: ネットワークのプロジェクト ID。GVNIC_NAME_PREFIX: gVNIC を使用する標準の VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。REGION: サブネットワークのリージョン。RDMA_NAME_PREFIX: RDMA NIC を使用する VPC ネットワークとサブネットの作成時に指定した名前の接頭辞。RESERVATION_NAME: 予約の名前。BLOCK_NAME: 予約内の特定のブロックの名前。SUB_BLOCK_NAME: ブロック内の特定のサブブロックの名前。TERMINATION_ACTION: 予約期間の終了時に Compute Engine によって A4X インスタンスを停止(STOP)するか削除(DELETE)するかの指定。
GPU ドライバをインストールする
インスタンスを作成した後、適切な GPU ドライバがすでにインストールされていない限り、インスタンスで GPU を使用することはできません。GPU ドライバを含む OS イメージを指定していない場合は、Compute Engine ドキュメントの GPU ドライバをインストールするをご覧ください。