このドキュメントでは、8 個の NVIDIA H100 GPU が接続され、GPUDirect-TCPX または GPUDirect-TCPXO のいずれかの GPUDirect テクノロジーを使用する A3 Mega、A3 High、または A3 Edge 仮想マシン(VM)インスタンスの設定について説明します。GPU が 8 個未満の A3 High インスタンスを作成するには、A3 High インスタンスまたは A2 インスタンスを作成するをご覧ください。
使用する GPUDirect テクノロジーは、選択した A3 マシンタイプによって異なります。
- GPUDirect-TCPXO: 8 個の H100 GPU を搭載した A3 Mega(
a3-megagpu-8g)マシンタイプでサポートされている RDMA のようなオフロード ネットワーキング スタックです。 - GPUDirect-TCPX: レイテンシを短縮するゲスト TCP の最適化バージョンです。8 個の H100 GPU を搭載した A3 High(
a3-highgpu-8g)マシンタイプと A3 Edge(a3-edgegpu-8g)マシンタイプでサポートされています。
A3 アクセラレータ最適化マシンシリーズは、208 個の vCPU と最大 1,872 GB のメモリを備えています。a3-megagpu-8g、a3-highgpu-8g、a3-edgegpu-8g の各マシンタイプでは、GPU あたり 80 GB の GPU メモリが提供されます。これらのマシンタイプは最大 1,800 Gbps のネットワーク帯域幅を利用できるため、Transformer ベースの大規模な言語モデル、データベース、ハイ パフォーマンス コンピューティング(HPC)に最適です。
GPUDirect-TCPX と GPUDirect-TCPXO はどちらも NVIDIA GPUDirect テクノロジーを使用して、A3 VM のパフォーマンスを向上させ、レイテンシを短縮します。これは、CPU とシステムメモリをバイパスして、データパケットのペイロードを GPU メモリからネットワーク インターフェースに直接転送することで実現されます。これは、リモート ダイレクト メモリアクセス(RDMA)の一種です。Google Virtual NIC(gVNIC)と組み合わせることで、A3 VM は、前世代の A2 または G2 アクセラレータ最適化マシンタイプと比較して、クラスタ内の VM 間で最高のスループットを提供できます。
このドキュメントでは、A3 Mega、A3 High、A3 Edge VM を作成し、GPUDirect-TCPX または GPUDirect-TCPXO を有効にして、改善された GPU ネットワーク パフォーマンスをテストする方法について説明します。
始める前に
- GPU が割り当てられたインスタンスの作成に関する制限事項とその他の前提条件(OS イメージの選択や GPU の割り当ての確認など)を確認するには、GPU が割り当てられたインスタンスの作成の概要をご覧ください。
-
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
-
必要なロール
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
これらの権限は、カスタムロールや他の事前定義ロールを使用して取得することもできます。
概要
GPUDirect を使用してネットワーク パフォーマンスをテストするには、次のように操作します。
- 大きな MTU が構成された 1 つ以上の Virtual Private Cloud(VPC)ネットワークを設定します。
- GPU インスタンスを作成します。
VPC ネットワークを設定する
GPU VM の効率的な通信を有効にするには、管理ネットワークと 1 つ以上のデータ ネットワークを作成する必要があります。管理ネットワークは、外部アクセス(SSH など)と一般的なネットワーク通信のほとんどに使用されます。データ ネットワークは、異なる VM の GPU 間の高パフォーマンス通信(リモート ダイレクト メモリアクセス(RDMA)トラフィックなど)に使用されます。
これらの VPC ネットワークでは、最大伝送単位(MTU)をより大きい値に設定することをおすすめします。MTU 値を大きくすると、パケットサイズが大きくなり、パケット ヘッダーのオーバーヘッドが減少するため、ペイロードのデータ スループットが向上します。 VPC ネットワークの作成方法の詳細については、ジャンボ フレーム MTU ネットワークの作成と確認をご覧ください。
管理ネットワーク、サブネット、ファイアウォール ルールを作成する
管理ネットワークを設定するには、次の手順で操作します。
networks createコマンドを使用して、管理ネットワークを作成します。gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \ --project=PROJECT_ID \ --subnet-mode=custom \ --mtu=8244networks subnets createコマンドを使用して、管理サブネットを作成します。gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --region=REGION \ --range=192.168.0.0/24firewall-rules createコマンドを使用して、ファイアウォール ルールを作成します。管理ネットワークのファイアウォール ルールを作成します。
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=192.168.0.0/16tcp:22ファイアウォール ルールを作成して、SSH を使用して VM に接続できる送信元 IP アドレスを制限します。gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=SSH_SOURCE_IP_RANGEネットワーク内のデータ転送の問題を確認するために使用できる
icmpファイアウォール ルールを作成します。gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=icmp \ --source-ranges=0.0.0.0/0
次のように置き換えます。
NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。PROJECT_ID: プロジェクト ID。REGION: ネットワークを作成するリージョン。SSH_SOURCE_IP_RANGE: CIDR 形式の IP 範囲。 SSH を使用して VM に接続できる送信元 IP アドレスを指定します。
データ ネットワーク、サブネット、ファイアウォール ルールを作成する
データ ネットワークの数は、作成する GPU マシンのタイプによって異なります。A3 Mega
A3 Mega には 8 つのデータ ネットワークが必要です。次のコマンドを使用して、それぞれサブネットとファイアウォール ルールを持つ 8 つのデータ ネットワークを作成します。
for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
--project=PROJECT_ID \
--subnet-mode=custom \
--mtu=8244
gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--region=REGION \
--range=192.168.$N.0/24
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--action=ALLOW \
--rules=tcp:0-65535,udp:0-65535,icmp \
--source-ranges=192.168.0.0/16
done
A3 High、A3 Edge
A3 High と A3 Edge には 4 つのデータ ネットワークが必要です。次のコマンドを使用して、それぞれサブネットとファイアウォール ルールを持つ 4 つのデータ ネットワークを作成します。
for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
--project=PROJECT_ID \
--subnet-mode=custom \
--mtu=8244
gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--region=REGION \
--range=192.168.$N.0/24
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--action=ALLOW \
--rules=tcp:0-65535,udp:0-65535,icmp \
--source-ranges=192.168.0.0/16
done
A3 Mega インスタンスを作成する(GPUDirect-TCPXO)
cos-121-lts 以降の Container-Optimized OS イメージを使用して A3 Mega インスタンスを作成します。
COS
GPUDirect-TCPXO でネットワーク パフォーマンスをテストするには、少なくとも 2 つの A3 Mega VM インスタンスを作成します。cos-121-lts 以降の Container-Optimized OS イメージを使用して各 VM を作成し、前の手順で作成した VPC ネットワークを指定します。
A3 Mega VM には、9 つの Google Virtual NIC(gVNIC)ネットワーク インターフェースが必要です。1 つは管理ネットワーク用、8 つはデータ ネットワーク用です。
VM の作成に使用するプロビジョニング モデルに基づいて、次のいずれかのオプションを選択します。
標準
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address
次のように置き換えます。
VM_NAME: VM インスタンスの名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。
スポット
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=SPOT \
--instance-termination-action=TERMINATION_ACTION
次のように置き換えます。
VM_NAME: VM インスタンスの名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: プリエンプション時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
Flex Start
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--request-valid-for-duration=VALID_FOR_DURATION \
--reservation-affinity=none
次のように置き換えます。
VM_NAME: VM インスタンスの名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: 実行期間の終了時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
RUN_DURATION: Compute Engine が VM を停止または削除するまでの VM の最大実行時間。値は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。たとえば、値30mは 30 分の時間を定義し、値1h2m3sは 1 時間 2 分 3 秒の時間を定義します。10 分~7 日の範囲で値を指定できます。VALID_FOR_DURATION`: リクエストされたリソースのプロビジョニングを待機する最大時間。値は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。ワークロードのゾーン要件に基づいて、VM 作成リクエストが成功する可能性を高めるために、次のいずれかの期間を指定します。- ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(
90s)から 2 時間(2h)の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。 - VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(
0s)に指定します。この値は、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
- ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(
予約で制限
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
次のように置き換えます。
VM_NAME: VM インスタンスの名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: 予約期間の終了時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
RESERVATION_URL: 使用する予約の URL。次のいずれかの値を指定します。- 同じプロジェクトで予約を作成した場合:
example-reservation - 予約が別のプロジェクトにあり、
プロジェクトで使用できる場合:
projects/PROJECT_ID/reservations/example-reservation。
- 同じプロジェクトで予約を作成した場合:
GPU ドライバをインストールする
各 A3 Mega VM に GPU ドライバをインストールします。
NVIDIA GPU ドライバをインストールします。
sudo cos-extensions install gpu -- --version=latest
パスを再マウントします。
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
NIC に GPU へのアクセス権を付与する
各 A3 Mega VM で、NIC に GPU へのアクセス権を付与します。
- すべての受信 TCP 接続を受け入れ、クラスタ内のノード間の通信を有効にするようにファイアウォール設定を調整します。
sudo /sbin/iptables -I INPUT -p tcp -m tcp -j ACCEPT
dmabufモジュールを構成するdmabufフレームワークの一部であるimport-helperモジュールを読み込みます。このフレームワークにより、GPU とネットワーク インターフェース カード(NIC)間で高速のゼロコピー メモリ共有が可能になります。これは、GPUDirect テクノロジーの重要なコンポーネントです。sudo modprobe import-helper
- Artifact Registry へのリクエストを認証するように Docker を構成します。
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- コンテナで
RxDMを起動します。RxDMは、GPU アプリケーションとともに実行され、GPU メモリを管理する管理サービスです。このサービスは、受信ネットワーク トラフィック用に GPU メモリを事前割り当てして管理します。これは GPUDirect テクノロジーの重要な要素であり、高性能ネットワーキングに不可欠です。rxdmという名前の Docker コンテナを起動します。docker run --pull=always --rm --detach --name rxdm \ --network=host --cap-add=NET_ADMIN \ --privileged \ --volume /var/lib/nvidia:/usr/local/nvidia \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64 \ us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.19 \ --num_hops=2 --num_nics=8RxDMが正常に起動したことを確認するには、コマンドを実行します。「バッファ マネージャーの初期化が終了」というメッセージが表示されるまで待ち、RxDMの初期化が成功したことを確認します。docker container logs --follow rxdm
または、
RxDM初期化完了ログを確認します。docker container logs rxdm 2>&1 | grep "Buffer manager initialization complete"
NCCL 環境を設定する
各 A3 VM で、次の手順で操作します。
nccl-netライブラリをインストールします。これは、ネットワーク経由で GPUDirect 通信を可能にする NCCL のプラグインです。次のコマンドは、インストーラ イメージを pull し、必要なライブラリ ファイルを/var/lib/tcpxo/lib64/にインストールします。NCCL_NET_IMAGE="us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.13-1" docker run --pull=always --rm --privileged \ --network=host --cap-add=NET_ADMIN \ --volume /var/lib/nvidia:/usr/local/nvidia \ --volume /var/lib:/var/lib \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/var/lib/tcpxo/lib64 \ ${NCCL_NET_IMAGE} install --install-nccl sudo mount --bind /var/lib/tcpxo /var/lib/tcpxo && sudo mount -o remount,exec /var/lib/tcpxo- NCCL テスト用の専用コンテナ
nccl-testsを起動します。このコンテナには、必要なツールとユーティリティ スクリプトが事前構成されており、GPUDirect 設定のパフォーマンスを検証するためのクリーンで一貫性のある環境が確保されます。このコマンドは、前の手順で設定した
NCCL_NET_IMAGE変数を再利用します。docker run --pull=always --rm --detach --name nccl \ --network=host --cap-add=NET_ADMIN \ --privileged \ --volume /var/lib/nvidia:/usr/local/nvidia \ --volume /var/lib/tcpxo:/var/lib/tcpxo \ --shm-size=8g \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/var/lib/tcpxo/lib64 \ ${NCCL_NET_IMAGE} daemon
nccl-tests ベンチマークを実行する
nccl-tests ベンチマークを実行するには、単一の A3 Mega VM で次の操作を行います。
nccl-testsコンテナ内でインタラクティブな bash シェルを開きます。docker exec -it nccl bash
- SSH を設定し、ホストファイルを生成して、マルチノード実行の環境を構成します。
VM_NAME_1とVM_NAME_2は、各 VM の名前に置き換えます。/scripts/init_ssh.sh VM_NAME_1 VM_NAME_2 /scripts/gen_hostfiles.sh VM_NAME_1 VM_NAME_2
これにより、
/scripts/hostfiles2という名前のディレクトリが作成されます。 all_gather_perfベンチマークを実行して、集団通信のパフォーマンスを測定します。/scripts/run-nccl-tcpxo.sh all_gather_perf "${LD_LIBRARY_PATH}" 8 eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8 1M 512M 3 2 10 8 2 10
nccl-tests コンテナの bash シェル内で、次の操作を行います。
A3 High インスタンスと Edge インスタンスを作成する(GPUDirect-TCPX)
cos-121-lts 以降の Container-Optimized OS イメージを使用して、A3 High インスタンスと Edge インスタンスを作成します。
COS
GPUDirect-TCPX でネットワーク パフォーマンスをテストするには、少なくとも 2 つの A3 High VM または A3 Edge VM を作成する必要があります。cos-121-lts 以降の Container-Optimized OS イメージを使用して各 VM を作成し、前の手順で作成した VPC ネットワークを指定します。
VM は Google Virtual NIC(gVNIC)ネットワーク インターフェースも使用する必要があります。A3 High VM または Edge VM の場合は、gVNIC ドライバのバージョン 1.4.0rc3 以降を使用する必要があります。このドライバ バージョンは Container-Optimized OS で利用できます。 最初の仮想 NIC は一般的なネットワーキングとストレージのプライマリ NIC として使用されます。他の 4 つの仮想 NIC は、同じ PCIe スイッチ上の 8 つの GPU のうち 2 つと NUMA アラインされています。
VM の作成に使用するプロビジョニング モデルに基づいて、次のいずれかのオプションを選択します。
標準
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address
次のように置き換えます。
VM_NAME: VM の名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。MACHINE_TYPE: VM のマシンタイプ。a3-highgpu-8gまたはa3-edgegpu-8gを指定します。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。
スポット
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=SPOT \
--instance-termination-action=TERMINATION_ACTION
次のように置き換えます。
VM_NAME: VM の名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。MACHINE_TYPE: VM のマシンタイプ。a3-highgpu-8gまたはa3-edgegpu-8gを指定します。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: プリエンプション時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
Flex Start
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--request-valid-for-duration=VALID_FOR_DURATION \
--reservation-affinity=none
次のように置き換えます。
VM_NAME: VM の名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。MACHINE_TYPE: VM のマシンタイプ。a3-highgpu-8gまたはa3-edgegpu-8gを指定します。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: 実行期間の終了時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
RUN_DURATION: Compute Engine が VM を停止または削除するまでの VM の最大実行時間。値は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。たとえば、値30mは 30 分の時間を定義し、値1h2m3sは 1 時間 2 分 3 秒の時間を定義します。10 分~7 日の範囲で値を指定できます。VALID_FOR_DURATION`: リクエストされたリソースのプロビジョニングを待機する最大時間。値は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。ワークロードのゾーン要件に基づいて、VM 作成リクエストが成功する可能性を高めるために、次のいずれかの期間を指定します。- ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(
90s)から 2 時間(2h)の期間を指定します。期間が長いほど、リソースを取得できる可能性が高くなります。 - VM がリージョン内の任意のゾーンで実行できる場合は、期間を 0 秒(
0s)に指定します。この値は、リソースがすぐに使用可能な場合にのみ Compute Engine がリソースを割り当てることを指定します。リソースが使用できないため作成リクエストが失敗した場合は、別のゾーンでリクエストを再試行します。
- ワークロードで特定のゾーンに VM を作成する必要がある場合は、90 秒(
予約で制限
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
次のように置き換えます。
VM_NAME: VM の名前。PROJECT_ID: 実際のプロジェクトの ID。ZONE: マシンタイプをサポートするゾーン。MACHINE_TYPE: VM のマシンタイプ。a3-highgpu-8gまたはa3-edgegpu-8gを指定します。BOOT_DISK_SIZE: ブートディスクのサイズ(GB 単位)。例:50。NETWORK_NAME_PREFIX: VPC ネットワークとサブネットに使用する名前の接頭辞。TERMINATION_ACTION: 予約期間の終了時に VM を停止するか削除するか。次のいずれかの値を指定します。- VM を停止するには:
STOP - VM を削除するには:
DELETE
- VM を停止するには:
RESERVATION_URL: 使用する予約の URL。次のいずれかの値を指定します。- 同じプロジェクトで予約を作成した場合:
example-reservation - 予約が別のプロジェクトにあり、
プロジェクトで使用できる場合:
projects/PROJECT_ID/reservations/example-reservation。
- 同じプロジェクトで予約を作成した場合:
GPU ドライバをインストールする
各 A3 High VM または Edge VM で、次の手順を完了します。
- 次のコマンドを実行して、NVIDIA GPU ドライバをインストールします。
sudo cos-extensions install gpu -- --version=latest
- 次のコマンドを実行して、パスを再マウントします。
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
NIC に GPU へのアクセス権を付与する
各 A3 High VM または Edge VM で、次の手順で NIC に GPU へのアクセス権を付与します。
- レジストリを構成します。
- Container Registry を使用している場合は、次のコマンドを実行します。
docker-credential-gcr configure-docker
- Artifact Registry を使用している場合は、次のコマンドを実行します。
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- Container Registry を使用している場合は、次のコマンドを実行します。
- 受信データパス マネージャーを構成します。マネージド サービスである GPUDirect-TCPX Receive Data Path Manager は、GPUDirect-TCPX を使用するアプリケーションとともに実行する必要があります。各 Container-Optimized OS VM でサービスを開始するには、次のコマンドを実行します。
docker run --pull=always --rm \ --name receive-datapath-manager \ --detach \ --privileged \ --cap-add=NET_ADMIN --network=host \ --volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64 \ --volume /run/tcpx:/run/tcpx \ --entrypoint /tcpgpudmarxd/build/app/tcpgpudmarxd \ us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd \ --gpu_nic_preset a3vm --gpu_shmem_type fd --uds_path "/run/tcpx" --setup_param "--verbose 128 2 0" receive-datapath-managerコンテナが起動したことを確認します。docker container logs --follow receive-datapath-manager
出力は次のようになります。
I0000 00:00:1687813309.406064 1 rx_rule_manager.cc:174] Rx Rule Manager server(s) started...
- ログの表示を停止するには、
ctrl-cを押します。 - IP テーブルルールをインストールします。
sudo iptables -I INPUT -p tcp -m tcp -j ACCEPT
- NVIDIA Collective Communications Library(NCCL)と GPUDirect-TCPX プラグインを構成します。
GPUDirect-TCPX サポート付きの NCCL を使用するには、特定の NCCL ライブラリ バージョンと GPUDirect-TCPX プラグイン バイナリの組み合わせが必要です。 Google Cloud には、この要件を満たすパッケージが用意されています。
Google Cloud パッケージをインストールするには、次のコマンドを実行します。
docker run --rm -v /var/lib:/var/lib us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx install --install-nccl sudo mount --bind /var/lib/tcpx /var/lib/tcpx sudo mount -o remount,exec /var/lib/tcpx
このコマンドが成功すると、
libnccl-net.soファイルとlibnccl.soファイルが/var/lib/tcpx/lib64ディレクトリに配置されます。
テストを実行する
各 A3 High VM または Edge VM で、次の手順で NCCL テストを実行します。
- コンテナを起動します。
#!/bin/bash function run_tcpx_container() { docker run \ -u 0 --network=host \ --cap-add=IPC_LOCK \ --userns=host \ --volume /run/tcpx:/tmp \ --volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \ --volume /var/lib/tcpx/lib64:/usr/local/tcpx/lib64 \ --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/usr/local/tcpx/lib64 \ "$@" }上記のコマンドにより、次の処理が行われます。
- NVIDIA デバイスを
/devからコンテナにマウントする - コンテナのネットワーク名前空間をホストに設定する
- ホストするコンテナのユーザー名前空間を設定する
- コンテナの機能に
CAP_IPC_LOCKを追加する - ホストの
/tmpをコンテナの/tmpにマウントする - NCCL と GPUDirect-TCPX NCCL プラグインのインストール パスをコンテナにマウントし、マウントされたパスを
LD_LIBRARY_PATHに追加する
- NVIDIA デバイスを
- コンテナを起動すると、NCCL を使用するアプリケーションをコンテナ内から実行できます。たとえば、
run-allgatherテストを実行するには、次の手順を完了します。- 各 A3 High または Edge VM で、次のコマンドを実行します。
$ run_tcpx_container -it --rm us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx shell
- 1 つの VM で次のコマンドを実行します。
- VM 間の接続を設定します。
VM-0とVM-1は、各 VM の名前に置き換えます。/scripts/init_ssh.sh VM-0 VM-1 pushd /scripts && /scripts/gen_hostfiles.sh VM-0 VM-1; popd
これにより、各 VM に
/scripts/hostfiles2ディレクトリが作成されます。 - スクリプトを実行します。
/scripts/run-allgather.sh 8 eth1,eth2,eth3,eth4 1M 512M 2
- VM 間の接続を設定します。
run-allgatherスクリプトの実行には約 2 分かかります。ログの最後に、all-gatherの結果が表示されます。NCCL ログに次の行がある場合は、GPUDirect-TCPX が正常に初期化されたことを確認できます。
NCCL INFO NET/GPUDirectTCPX ver. 3.1.1.
- 各 A3 High または Edge VM で、次のコマンドを実行します。
マルチインスタンス GPU
マルチインスタンス GPU は、単一の NVIDIA H100 GPU を、同じ VM 内にある最大 7 つの独立した GPU インスタンスに分割します。これらは、それぞれ独自のメモリ、キャッシュ、ストリーミング マルチプロセッサを備え、同時に実行されます。この設定により、NVIDIA H100 GPU は、以前の GPU モデルと比較して最大 7 倍高い品質保証(QoS)を提供できます。
最大 7 つのマルチインスタンス GPU を作成できます。H100 80 GB GPU では、各マルチインスタンス GPU に 10 GB のメモリが割り当てられます。
複数インスタンス GPU の使用について詳しくは、NVIDIA マルチインスタンス GPU ユーザーガイドをご覧ください。
複数インスタンス GPU を作成する手順は次のとおりです。
A3 Mega、A3 High、または A3 Edge インスタンスを作成します。
GPU ドライバをインストールします。
MIG モードを有効にします。手順については、MIG を有効にするをご覧ください。
GPU パーティションを構成します。手順については、GPU パーティションを操作するをご覧ください。