Dokumen ini menjelaskan penyiapan untuk instance mesin virtual (VM) A3 Mega, A3 High, atau A3 Edge yang memiliki delapan GPU NVIDIA H100 yang terpasang dan menggunakan salah satu teknologi GPUDirect berikut: GPUDirect-TCPX atau GPUDirect-TCPXO. Untuk membuat instance A3 High dengan kurang dari 8 GPU, lihat Membuat instance A3 High atau A2.
Teknologi GPUDirect yang Anda gunakan bergantung pada jenis mesin A3 yang Anda pilih.
- GPUDirect-TCPXO: adalah stack jaringan yang di-offload dan mirip RDMA yang didukung pada jenis mesin A3 Mega (
a3-megagpu-8g) yang memiliki delapan GPU H100. - GPUDirect-TCPX: adalah versi TCP tamu yang dioptimalkan yang memberikan latensi lebih rendah dan didukung pada jenis mesin A3 High (
a3-highgpu-8g) dan A3 Edge (a3-edgegpu-8g) yang memiliki delapan GPU H100.
Seri mesin yang dioptimalkan untuk akselerator A3
memiliki 208 vCPU, dan memori hingga 1.872 GB. Jenis mesin
a3-megagpu-8g, a3-highgpu-8g, dan a3-edgegpu-8g menawarkan memori GPU 80 GB per GPU. Jenis mesin ini dapat memperoleh bandwidth jaringan hingga 1.800 Gbps, sehingga ideal untuk model bahasa berbasis transformer besar, database, dan komputasi berperforma tinggi (HPC).
GPUDirect-TCPX dan GPUDirect-TCPXO menggunakan teknologi NVIDIA GPUDirect untuk meningkatkan performa dan mengurangi latensi untuk VM A3 Anda. Hal ini dicapai dengan memungkinkan payload paket data ditransfer langsung dari memori GPU ke antarmuka jaringan, dengan melewati CPU dan memori sistem. Ini adalah bentuk akses memori langsung jarak jauh (RDMA). Jika digabungkan dengan Google Virtual NIC (gVNIC), VM A3 dapat memberikan throughput tertinggi antar-VM dalam cluster jika dibandingkan dengan jenis mesin yang dioptimalkan akselerator A2 atau G2 generasi sebelumnya.
Dokumen ini menjelaskan cara membuat VM A3 Mega, A3 High, atau A3 Edge dan mengaktifkan GPUDirect-TCPX atau GPUDirect-TCPXO untuk menguji peningkatan performa jaringan GPU.
Sebelum memulai
- Untuk meninjau batasan dan langkah-langkah prasyarat tambahan untuk membuat instance dengan GPU yang terpasang, seperti memilih image OS dan memeriksa kuota GPU, lihat Ringkasan pembuatan instance dengan GPU yang terpasang.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
-
Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
- Set a default region and zone.
-
Peran yang diperlukan
Agar mendapatkan izin yang
diperlukan untuk membuat VM,
minta administrator untuk memberi Anda
peran IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat VM. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat VM:
-
compute.instances.createpada project -
Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnlypada image -
Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnlypada snapshot -
Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnlypada template instance -
Untuk menentukan subnet bagi VM Anda:
compute.subnetworks.usedi project atau di subnet yang dipilih -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIpdi project atau di subnet yang dipilih -
Untuk menetapkan jaringan lama ke VM:
compute.networks.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIpdi project -
Untuk menetapkan metadata instance VM bagi VM:
compute.instances.setMetadatadi project -
Untuk menyetel tag untuk VM:
compute.instances.setTagsdi VM -
Untuk menetapkan label bagi VM:
compute.instances.setLabelsdi VM -
Untuk menyetel akun layanan yang akan digunakan VM:
compute.instances.setServiceAccountdi VM -
Untuk membuat disk baru bagi VM:
compute.disks.createpada project -
Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.usepada disk -
Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnlypada disk
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Ringkasan
Untuk menguji performa jaringan dengan GPUDirect, selesaikan langkah-langkah berikut:
- Siapkan satu atau beberapa jaringan Virtual Private Cloud (VPC) yang telah dikonfigurasi dengan MTU besar.
- Buat instance GPU Anda.
Menyiapkan jaringan VPC
Untuk mengaktifkan komunikasi yang efisien bagi VM GPU Anda, Anda perlu membuat jaringan pengelolaan dan satu atau beberapa jaringan data. Jaringan pengelolaan digunakan untuk akses eksternal, misalnya SSH, dan untuk sebagian besar komunikasi jaringan umum. Jaringan data digunakan untuk komunikasi berperforma tinggi antara GPU di VM yang berbeda, misalnya, untuk traffic Remote Direct Memory Access (RDMA).
Untuk jaringan VPC ini, sebaiknya tetapkan unit transmisi maksimum (MTU) ke nilai yang lebih besar. Nilai MTU yang lebih tinggi akan menambah ukuran paket dan mengurangi overhead header paket, sehingga meningkatkan throughput data payload. Untuk mengetahui informasi selengkapnya tentang cara membuat jaringan VPC, lihat Membuat dan memverifikasi jaringan MTU frame jumbo.
Membuat jaringan, subnet, dan aturan firewall pengelolaan
Selesaikan langkah-langkah berikut untuk menyiapkan jaringan pengelolaan:
Buat jaringan pengelolaan menggunakan perintah
networks create:gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \ --project=PROJECT_ID \ --subnet-mode=custom \ --mtu=8244Buat subnet pengelolaan menggunakan perintah
networks 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/24Buat aturan firewall menggunakan perintah
firewall-rules create.Buat aturan firewall untuk jaringan pengelolaan.
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/16Buat aturan firewall
tcp:22untuk membatasi alamat IP sumber yang dapat terhubung ke VM Anda menggunakan SSH.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_RANGEBuat aturan firewall
icmpyang dapat digunakan untuk memeriksa masalah transmisi data di jaringan.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
Ganti kode berikut:
NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.PROJECT_ID: Project ID Anda.REGION: region tempat Anda ingin membuat jaringan.SSH_SOURCE_IP_RANGE: Rentang IP dalam format CIDR. Tindakan ini menentukan alamat IP sumber mana yang dapat terhubung ke VM Anda menggunakan SSH.
Membuat jaringan data, subnet, dan aturan firewall
Jumlah jaringan data bervariasi, bergantung pada jenis mesin GPU yang Anda buat.A3 Mega
A3 Mega memerlukan delapan jaringan data. Gunakan perintah berikut untuk membuat delapan jaringan data, masing-masing dengan subnet dan aturan firewall.
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 dan A3 Edge
A3 High dan A3 Edge memerlukan empat jaringan data. Gunakan perintah berikut untuk membuat empat jaringan data, masing-masing dengan subnet dan aturan firewall.
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
Membuat instance A3 Mega (GPUDirect-TCPXO)
Buat instance A3 Mega Anda menggunakan image Container-Optimized OS cos-121-lts atau yang lebih baru.
COS
Untuk menguji performa jaringan dengan GPUDirect-TCPXO, buat minimal dua instance VM A3 Mega.
Buat setiap VM menggunakan image Container-Optimized OS cos-121-lts atau yang lebih baru dan tentukan jaringan VPC yang Anda buat pada langkah sebelumnya.
VM A3 Mega memerlukan sembilan antarmuka jaringan Google Virtual NIC (gVNIC), satu untuk jaringan pengelolaan dan delapan untuk jaringan data.
Berdasarkan model penyediaan yang ingin Anda gunakan untuk membuat VM, pilih salah satu opsi berikut:
Standar
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
Ganti kode berikut:
VM_NAME: nama instance VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.
Spot
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
Ganti kode berikut:
VM_NAME: nama instance VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM saat di-preempt. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan 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
Ganti kode berikut:
VM_NAME: nama instance VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM di akhir durasi berjalan. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan VM:
RUN_DURATION: waktu maksimum VM berjalan sebelum Compute Engine menghentikan atau menghapusnya. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik, diikuti dengand,h,m, dans. Misalnya, nilai30mmenentukan waktu 30 menit, dan nilai1h2m3smenentukan waktu satu jam, dua menit, dan tiga detik. Anda dapat menentukan nilai antara 10 menit dan tujuh hari.VALID_FOR_DURATION`: waktu maksimum untuk menunggu penyediaan resource yang Anda minta. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik diikuti dengand,h,m, dans. Berdasarkan persyaratan zona untuk beban kerja Anda, tentukan salah satu durasi berikut untuk membantu meningkatkan peluang keberhasilan permintaan pembuatan VM Anda:- Jika workload Anda mengharuskan Anda membuat VM di zona tertentu, tentukan durasi
antara 90 detik (
90s) dan dua jam (2h). Durasi yang lebih lama memberi Anda peluang yang lebih tinggi untuk mendapatkan resource. - Jika VM dapat berjalan di zona mana pun dalam region, tentukan durasi nol detik
(
0s). Nilai ini menentukan bahwa Compute Engine hanya mengalokasikan resource jika resource tersebut segera tersedia. Jika permintaan pembuatan gagal karena resource tidak tersedia, coba lagi permintaan di zona lain.
- Jika workload Anda mengharuskan Anda membuat VM di zona tertentu, tentukan durasi
antara 90 detik (
Terikat dengan reservasi
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
Ganti kode berikut:
VM_NAME: nama instance VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM di akhir periode reservasi. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan VM:
RESERVATION_URL: URL reservasi yang ingin Anda gunakan. Tentukan salah satu nilai berikut:- Jika Anda membuat pemesanan di project yang sama:
example-reservation - Jika reservasi berada di project lain, dan
project Anda dapat menggunakannya:
projects/PROJECT_ID/reservations/example-reservation.
- Jika Anda membuat pemesanan di project yang sama:
Menginstal driver GPU
Di setiap VM A3 Mega, instal driver GPU.
Instal driver GPU NVIDIA.
sudo cos-extensions install gpu -- --version=latest
Pasang kembali jalur.
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
Memberikan akses NIC ke GPU
Di setiap VM A3 Mega, berikan akses NIC ke GPU.
- Sesuaikan setelan firewall untuk menerima semua koneksi TCP masuk dan mengaktifkan komunikasi
antara node di cluster Anda:
sudo /sbin/iptables -I INPUT -p tcp -m tcp -j ACCEPT
- Konfigurasi modul
dmabuf. Muat modulimport-helper, yang merupakan bagian dari frameworkdmabuf. Framework ini memungkinkan berbagi memori berkecepatan tinggi dan tanpa penyalinan antara GPU dan kartu antarmuka jaringan (NIC), yang merupakan komponen penting untuk teknologi GPUDirect:sudo modprobe import-helper
- Konfigurasi Docker untuk mengautentikasi permintaan ke Artifact Registry.
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- Luncurkan
RxDMdi container.RxDMadalah layanan pengelolaan yang berjalan bersama aplikasi GPU untuk mengelola memori GPU. Layanan ini melakukan pra-alokasi dan mengelola memori GPU untuk traffic jaringan yang masuk, yang merupakan elemen utama teknologi GPUDirect dan penting untuk jaringan berperforma tinggi. Mulai container Docker bernamarxdm: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=8Untuk memverifikasi bahwa
RxDMtelah berhasil dimulai, jalankan perintah. Tunggu hingga pesan "Buffer manager initialization complete" untuk mengonfirmasi keberhasilan inisialisasiRxDM.docker container logs --follow rxdm
Atau, periksa log penyelesaian inisialisasi
RxDM.docker container logs rxdm 2>&1 | grep "Buffer manager initialization complete"
Menyiapkan lingkungan NCCL
Di setiap VM A3 Mega, selesaikan langkah-langkah berikut:
- Instal library
nccl-net, plugin untuk NCCL yang memungkinkan komunikasi GPUDirect melalui jaringan.Perintah berikut menarik image penginstal dan menginstal file library yang diperlukan ke/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 - Luncurkan container khusus
nccl-testsuntuk pengujian NCCL. Container ini telah dikonfigurasi sebelumnya dengan alat dan skrip utilitas yang diperlukan, sehingga memastikan lingkungan yang bersih dan konsisten untuk memverifikasi performa penyiapan GPUDirect.Perintah ini menggunakan kembali variabel
NCCL_NET_IMAGEyang Anda tetapkan di langkah sebelumnya.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
Menjalankan benchmark nccl-tests
Untuk menjalankan benchmark nccl-tests, di satu VM A3 Mega, selesaikan langkah-langkah berikut:
- Buka shell bash interaktif di dalam container
nccl-tests.docker exec -it nccl bash
- Konfigurasi lingkungan untuk menjalankan multi-node
dengan menyiapkan SSH dan membuat file host. Ganti
VM_NAME_1danVM_NAME_2dengan nama setiap VM./scripts/init_ssh.sh VM_NAME_1 VM_NAME_2 /scripts/gen_hostfiles.sh VM_NAME_1 VM_NAME_2
Tindakan ini akan membuat direktori bernama
/scripts/hostfiles2. - Jalankan benchmark
all_gather_perfuntuk mengukur performa komunikasi kolektif:/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
Dari dalam shell bash container nccl-tests, selesaikan langkah-langkah berikut.
Membuat instance A3 High dan Edge (GPUDirect-TCPX)
Buat instance A3 High dan Edge Anda menggunakan image Container-Optimized OS
cos-121-lts atau yang lebih baru.
COS
Untuk menguji performa jaringan dengan GPUDirect-TCPX, Anda harus membuat minimal dua VM A3 High atau Edge. Buat setiap VM menggunakan image Container-Optimized OS cos-121-lts atau yang lebih baru dan tentukan jaringan VPC yang Anda buat pada langkah sebelumnya.
VM harus menggunakan antarmuka jaringan Google Virtual NIC (gVNIC). Untuk VM A3 High atau Edge, Anda harus menggunakan driver gVNIC versi 1.4.0rc3 atau yang lebih baru. Versi driver ini tersedia di Container-Optimized OS. NIC virtual pertama digunakan sebagai NIC utama untuk jaringan dan penyimpanan umum, empat NIC virtual lainnya selaras NUMA dengan dua dari delapan GPU pada switch PCIe yang sama.
Berdasarkan model penyediaan yang ingin Anda gunakan untuk membuat VM, pilih salah satu opsi berikut:
Standar
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
Ganti kode berikut:
VM_NAME: nama VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.MACHINE_TYPE: jenis mesin untuk VM. Tentukana3-highgpu-8gataua3-edgegpu-8g.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.
Spot
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
Ganti kode berikut:
VM_NAME: nama VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.MACHINE_TYPE: jenis mesin untuk VM. Tentukana3-highgpu-8gataua3-edgegpu-8g.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM saat di-preempt. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan 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
Ganti kode berikut:
VM_NAME: nama VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.MACHINE_TYPE: jenis mesin untuk VM. Tentukana3-highgpu-8gataua3-edgegpu-8g.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM di akhir durasi berjalan. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan VM:
RUN_DURATION: waktu maksimum VM berjalan sebelum Compute Engine menghentikan atau menghapusnya. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik, diikuti dengand,h,m, dans. Misalnya, nilai30mmenentukan waktu 30 menit, dan nilai1h2m3smenentukan waktu satu jam, dua menit, dan tiga detik. Anda dapat menentukan nilai antara 10 menit dan tujuh hari.VALID_FOR_DURATION`: waktu maksimum untuk menunggu penyediaan resource yang Anda minta. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik diikuti dengand,h,m, dans. Berdasarkan persyaratan zona untuk beban kerja Anda, tentukan salah satu durasi berikut untuk membantu meningkatkan peluang keberhasilan permintaan pembuatan VM Anda:- Jika workload Anda mengharuskan Anda membuat VM di zona tertentu, tentukan durasi
antara 90 detik (
90s) dan dua jam (2h). Durasi yang lebih lama memberi Anda peluang yang lebih tinggi untuk mendapatkan resource. - Jika VM dapat berjalan di zona mana pun dalam region, tentukan durasi nol detik
(
0s). Nilai ini menentukan bahwa Compute Engine hanya mengalokasikan resource jika resource tersebut segera tersedia. Jika permintaan pembuatan gagal karena resource tidak tersedia, coba lagi permintaan di zona lain.
- Jika workload Anda mengharuskan Anda membuat VM di zona tertentu, tentukan durasi
antara 90 detik (
Terikat dengan reservasi
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
Ganti kode berikut:
VM_NAME: nama VM Anda.PROJECT_ID: ID project Anda.ZONE: zona yang mendukung jenis mesin Anda.MACHINE_TYPE: jenis mesin untuk VM. Tentukana3-highgpu-8gataua3-edgegpu-8g.BOOT_DISK_SIZE: ukuran boot disk dalam GB—misalnya,50.NETWORK_NAME_PREFIX: awalan nama yang akan digunakan untuk jaringan dan subnet VPC.TERMINATION_ACTION: apakah akan menghentikan atau menghapus VM di akhir periode reservasi. Tentukan salah satu nilai berikut:- Untuk menghentikan VM:
STOP - Untuk menghapus VM:
DELETE
- Untuk menghentikan VM:
RESERVATION_URL: URL reservasi yang ingin Anda gunakan. Tentukan salah satu nilai berikut:- Jika Anda membuat pemesanan di project yang sama:
example-reservation - Jika reservasi berada di project lain, dan
project Anda dapat menggunakannya:
projects/PROJECT_ID/reservations/example-reservation.
- Jika Anda membuat pemesanan di project yang sama:
Menginstal driver GPU
Di setiap VM A3 High atau Edge, selesaikan langkah-langkah berikut.
- Instal driver GPU NVIDIA dengan menjalankan perintah berikut:
sudo cos-extensions install gpu -- --version=latest
- Pasang kembali jalur dengan menjalankan perintah berikut:
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
Memberikan akses NIC ke GPU
Di setiap VM A3 High atau Edge, berikan akses NIC ke GPU dengan menyelesaikan langkah-langkah berikut:
- Konfigurasi registri.
- Jika Anda menggunakan Container Registry, jalankan perintah berikut:
docker-credential-gcr configure-docker
- Jika Anda menggunakan Artifact Registry, jalankan perintah berikut:
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- Jika Anda menggunakan Container Registry, jalankan perintah berikut:
- Konfigurasi pengelola jalur data penerimaan. Layanan pengelolaan,
GPUDirect-TCPX Receive Data Path Manager, harus berjalan
bersama aplikasi yang menggunakan GPUDirect-TCPX. Untuk memulai
layanan di setiap VM Container-Optimized OS, jalankan perintah berikut:
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" - Verifikasi bahwa container
receive-datapath-managertelah dimulai.docker container logs --follow receive-datapath-manager
Output akan terlihat seperti berikut:
I0000 00:00:1687813309.406064 1 rx_rule_manager.cc:174] Rx Rule Manager server(s) started...
- Untuk berhenti melihat log, tekan
ctrl-c. - Instal aturan tabel IP.
sudo iptables -I INPUT -p tcp -m tcp -j ACCEPT
- Mengonfigurasi NVIDIA Collective Communications Library (NCCL)
dan plugin GPUDirect-TCPX.
Kombinasi biner plugin GPUDirect-TCPX dan versi library NCCL tertentu diperlukan untuk menggunakan NCCL dengan dukungan GPUDirect-TCPX. Google Cloud telah menyediakan paket yang memenuhi persyaratan ini.
Untuk menginstal paket Google Cloud , jalankan perintah berikut:
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
Jika perintah ini berhasil, file
libnccl-net.sodanlibnccl.soakan ditempatkan di direktori/var/lib/tcpx/lib64.
Menjalankan pengujian
Di setiap VM A3 High atau Edge, jalankan pengujian NCCL dengan menyelesaikan langkah-langkah berikut:
- Mulai penampung.
#!/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 \ "$@" }Perintah sebelumnya menyelesaikan hal berikut:
- Memasang perangkat NVIDIA dari
/devke dalam container - Menetapkan namespace jaringan container ke host
- Menetapkan namespace pengguna container ke host
- Menambahkan
CAP_IPC_LOCKke kemampuan penampung - Memasang
/tmphost ke/tmpcontainer - Memasang jalur penginstalan plugin NCCL dan GPUDirect-TCPX NCCL ke dalam
penampung dan menambahkan jalur yang dipasang ke
LD_LIBRARY_PATH
- Memasang perangkat NVIDIA dari
- Setelah Anda memulai container, aplikasi yang menggunakan NCCL dapat berjalan dari
dalam container. Misalnya, untuk menjalankan pengujian
run-allgather, selesaikan langkah-langkah berikut:- Di setiap VM A3 High atau Edge, jalankan perintah berikut:
$ run_tcpx_container -it --rm us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx shell
- Di salah satu VM, jalankan perintah berikut:
- Siapkan koneksi antar-VM. Ganti
VM-0danVM-1dengan nama setiap VM./scripts/init_ssh.sh VM-0 VM-1 pushd /scripts && /scripts/gen_hostfiles.sh VM-0 VM-1; popd
Tindakan ini akan membuat direktori
/scripts/hostfiles2di setiap VM. - Jalankan skrip.
/scripts/run-allgather.sh 8 eth1,eth2,eth3,eth4 1M 512M 2
- Siapkan koneksi antar-VM. Ganti
Skrip
run-allgathermemerlukan waktu sekitar dua menit untuk dijalankan. Di akhir log, Anda akan melihat hasilall-gather.Jika Anda melihat baris berikut dalam log NCCL, hal ini memverifikasi bahwa GPUDirect-TCPX berhasil diinisialisasi.
NCCL INFO NET/GPUDirectTCPX ver. 3.1.1.
- Di setiap VM A3 High atau Edge, jalankan perintah berikut:
GPU Multi-Instance
Multi-Instance GPU mempartisi satu GPU NVIDIA H100 dalam VM yang sama ke dalam hingga tujuh instance GPU independen. Keduanya berjalan secara bersamaan, masing-masing dengan memori, cache, dan multiprosesor streaming sendiri. Penyiapan ini memungkinkan GPU NVIDIA H100 memberikan kualitas layanan (QoS) yang konsisten dengan pemanfaatan hingga 7x lebih tinggi dibandingkan dengan model GPU sebelumnya.
Anda dapat membuat hingga tujuh GPU Multi-instance. Dengan GPU H100 80 GB, setiap GPU Multi-instance dialokasikan memori 10 GB.
Untuk mengetahui informasi selengkapnya tentang penggunaan GPU Multi-Instance, lihat Panduan Pengguna Multi-Instance GPU NVIDIA.
Untuk membuat GPU Multi-Instance, selesaikan langkah-langkah berikut:
Buat instance A3 Mega, A3 High, atau A3 Edge Anda.
Instal driver GPU.
Aktifkan mode MIG. Untuk mengetahui petunjuknya, lihat Mengaktifkan MIG.
Konfigurasi partisi GPU Anda. Untuk mengetahui petunjuknya, lihat Bekerja dengan partisi GPU.