Membuat instance A4X Max yang dioptimalkan AI

Dokumen ini menjelaskan langkah-langkah untuk membuat instance Compute Engine mandiri yang menggunakan jenis mesin yang dioptimalkan untuk akselerator A4X Max. Untuk mempelajari opsi pembuatan cluster dan instance komputasi, lihat halaman Ringkasan opsi deployment.

Jenis instance A4X Max

Instance Compute Engine, atau instance komputasi, adalah resource komputasi yang dihosting di infrastruktur Google yang dapat berupa virtual machine (VM) atau instance bare metal. Instance A4X Max tersedia sebagai instance bare metal, yang berbeda dari instance VM karena memberikan akses langsung yang tidak divirtualisasi ke hardware fisik yang mendasarinya. Untuk mempelajari lebih lanjut jenis mesin A4X Max, lihat seri A4X Max di dokumentasi Compute Engine.

Batasan

Saat Anda membuat instance A4X Max mandiri, batasan berikut berlaku:

Sebelum memulai

Sebelum membuat instance A4X Max, jika Anda belum melakukannya, selesaikan langkah-langkah berikut:

  1. Pilih opsi pemakaian: pilihan opsi pemakaian menentukan cara Anda mendapatkan dan menggunakan resource GPU.

    Untuk mempelajari lebih lanjut, lihat Memilih opsi pemakaian.

  2. Mendapatkan kapasitas: proses untuk mendapatkan kapasitas berbeda untuk setiap opsi konsumsi.

    Untuk mempelajari proses mendapatkan kapasitas untuk opsi pemakaian yang Anda pilih, lihat Ringkasan kapasitas.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat instance komputasi, 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 instance komputasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat instance komputasi:

  • compute.instances.create di project
  • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
  • Untuk menggunakan snapshot guna membuat VM: compute.snapshots.useReadOnly pada snapshot
  • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly pada template instance
  • Untuk menentukan subnet bagi VM Anda: compute.subnetworks.use di project atau di subnet yang dipilih
  • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
  • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
  • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
  • Untuk menetapkan metadata instance VM bagi VM: compute.instances.setMetadata di project
  • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label bagi VM: compute.instances.setLabels di VM
  • Untuk menetapkan akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru untuk VM: compute.disks.create pada project
  • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
  • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Dasar-dasar A4X Max

Cluster A4X Max disusun dalam hierarki blok dan sub-blok untuk memfasilitasi performa jaringan non-blocking skala besar. Memahami topologi ini sangat penting saat mencadangkan kapasitas dan men-deploy workload.

Instance A4X Max
Instance A4X Max adalah jenis mesin A4X Max tunggal yang memiliki 4 GPU yang terpasang.
Sub-block
Sub-blok adalah unit dasar kapasitas A4X Max. Untuk A4X Max, sub-blok terdiri dari 18 instance A4X Max (72 GPU); instance ini membentuk domain NVLink dan terhubung menggunakan sistem NVLink multi-node. Anda membuat sub-blok A4X Max dengan menerapkan kebijakan penempatan ringkas yang menentukan topologi 1x72.
Blokir
Blok A4X Max terdiri dari 25 sub-blok (domain NVLink), dengan total hingga 450 instance A4X Max (1.800 GPU). Sub-blok disejajarkan dengan rel untuk penskalaan yang efisien. Setiap sub-blok memerlukan kebijakan penempatan compact. Oleh karena itu, untuk satu blok A4X Max, Anda dapat membuat 25 kebijakan penempatan rapat.

Tabel berikut menunjukkan opsi topologi yang didukung untuk instance A4X Max:

Topologi (gpuTopology) Jumlah GPU Jumlah instance
1x72 72 18

Ringkasan

Membuat instance dengan jenis mesin A4X Max mencakup langkah-langkah berikut:

  1. Membuat jaringan VPC
  2. Membuat kebijakan penempatan rapat
  3. Membuat instance

Membuat jaringan VPC

Untuk menyiapkan jaringan bagi jenis mesin A4X Max, buat dua jaringan VPC untuk antarmuka jaringan berikut:

  • 1 jaringan VPC reguler dengan dua subnet untuk antarmuka jaringan (NIC) IDPF. Ini digunakan untuk komunikasi host ke host.
  • 1 jaringan VPC dengan profil jaringan RoCE untuk NIC CX-8 saat membuat beberapa subblok A4X Max. Jaringan VPC RoCE menggunakan satu subnet bernama default-subnet-1-RDMA_NAME_PREFIX-net yang disediakan secara otomatis, dan semua delapan NIC CX-8 menggunakan subnet ini. NIC ini menggunakan RDMA over Converged Ethernet (RoCE), yang menyediakan komunikasi bandwidth tinggi dan latensi rendah yang penting untuk menskalakan beberapa subblok A4X Max. Untuk satu subblok A4X Max, Anda dapat melewati jaringan VPC ini karena dalam satu subblok, komunikasi GPU ke GPU langsung ditangani oleh NVLink multi-node.

Untuk mengetahui informasi selengkapnya tentang pengaturan NIC, lihat Meninjau bandwidth jaringan dan pengaturan NIC.

Buat jaringan secara manual dengan mengikuti panduan petunjuk atau secara otomatis menggunakan skrip yang disediakan.

Panduan petunjuk

Untuk membuat jaringan, Anda dapat menggunakan petunjuk berikut:

Untuk jaringan VPC ini, sebaiknya tetapkan unit transmisi maksimum (MTU) ke nilai yang lebih besar. Untuk jenis mesin A4X Max, MTU yang direkomendasikan adalah 8896 byte. Untuk meninjau setelan MTU yang direkomendasikan untuk jenis mesin GPU lainnya, lihat Setelan MTU untuk jenis mesin GPU.

Skrip

Untuk membuat jaringan, ikuti langkah-langkah berikut.

Untuk jaringan VPC ini, sebaiknya tetapkan unit transmisi maksimum (MTU) ke nilai yang lebih besar. Untuk jenis mesin A4X Max, MTU yang direkomendasikan adalah 8896 byte. Untuk meninjau setelan MTU yang direkomendasikan untuk jenis mesin GPU lainnya, lihat Setelan MTU untuk jenis mesin GPU.

  1. Gunakan skrip berikut untuk membuat jaringan VPC reguler untuk NIC IDPF.

      
        #!/bin/bash
    
        # Create regular VPC network for the IDPF NICs
        gcloud compute networks create IDPF_NETWORK_PREFIX-net \
          --subnet-mode=custom \
          --mtu=8896 \
          --enable-ula-internal-ipv6
    
        # Create subnets for the IDPF NICs
        for N in $(seq 0 1); do
          gcloud compute networks subnets create IDPF_NETWORK_PREFIX-$N \
            --network=IDPF_NETWORK_PREFIX-net \
            --region=REGION \
            --stack-type=IPV6_ONLY \
            --ipv6-access-type=INTERNAL
        done
    
        gcloud compute firewall-rules create IDPF_NETWORK_PREFIX-internal \
          --network=IDPF_NETWORK_PREFIX-net \
          --action=ALLOW \
          --rules=tcp:0-65535,udp:0-65535,58 \
          --source-ranges=IP_RANGE
    
    
      
  2. Jika Anda memerlukan beberapa subblok A4X Max, gunakan skrip berikut untuk membuat jaringan dan subnet VPC RoCE untuk empat NIC CX-8 di setiap instance A4X Max.

      
        #!/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-net \
          --network-profile=ZONE-vpc-roce-metal \
          --subnet-mode custom \
          --mtu=8896
    
        # For RoCE VPC networks for bare metal instances, a single subnet named
        # default-subnet-1-RDMA_NAME_PREFIX-net is automatically provided.
        # For more details, see https://cloud.google.com/vpc/docs/rdma-network-profiles.
    
      

    Ganti kode berikut:

    • IDPF_NETWORK_PREFIX: awalan nama kustom yang akan digunakan untuk jaringan dan subnet VPC reguler untuk NIC IDPF.
    • RDMA_NAME_PREFIX: awalan nama kustom yang akan digunakan untuk jaringan VPC dan subnet RoCE bagi NIC CX-8.
    • ZONE: tentukan zona tempat jenis mesin yang ingin Anda gunakan tersedia, seperti us-central1-a. Untuk mengetahui informasi tentang region, lihat Ketersediaan GPU menurut region dan zona.
    • REGION: region tempat Anda ingin membuat subnet. Wilayah ini harus sesuai dengan zona yang ditentukan. Misalnya, jika zona Anda adalah us-central1-a, maka region Anda adalah us-central1.
    • IP_RANGE: rentang IP yang akan digunakan untuk aturan firewall SSH.
  3. Opsional: Untuk memverifikasi bahwa resource jaringan VPC berhasil dibuat, periksa setelan jaringan di konsol Google Cloud :
    1. Di konsol Google Cloud , buka halaman VPC networks.

      Buka VPC networks

    2. Telusuri daftar untuk menemukan jaringan yang Anda buat di langkah sebelumnya.
    3. Untuk melihat subnet, aturan firewall, dan setelan jaringan lainnya, klik nama jaringan.

Membuat kebijakan penempatan rapat.

Untuk membuat kebijakan penempatan ringkas, pilih salah satu opsi berikut:

gcloud

Untuk membuat kebijakan penempatan rapat, gunakan perintah 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

Ganti kode berikut:

  • POLICY_NAME: nama kebijakan penempatan yang ringkas.
  • REGION: region tempat Anda ingin membuat kebijakan penempatan yang ringkas. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia. Untuk mengetahui informasi tentang region, lihat Ketersediaan GPU menurut region dan zona.

REST

Untuk membuat kebijakan penempatan ringkas, buat permintaan POST ke metode beta resourcePolicies.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "gpuTopology": "1x72"
    }
  }

Ganti kode berikut:

  • PROJECT_ID: project ID Anda.
  • POLICY_NAME: nama kebijakan penempatan yang ringkas.
  • REGION: region tempat Anda ingin membuat kebijakan penempatan yang ringkas. Tentukan region tempat jenis mesin yang ingin Anda gunakan tersedia. Untuk mengetahui informasi tentang region, lihat Ketersediaan GPU menurut region dan zona.

Membuat instance A4X Max

Untuk mendapatkan topologi GPU 1x72, buat 18 instance A4X Max. Saat membuat instance, terapkan kebijakan penempatan rapat yang menentukan kolom gpuTopology. Penerapan kebijakan ini memastikan bahwa Compute Engine membuat semua 18 instance A4X Max dalam satu sub-blok untuk menggunakan domain NVLink. Jika sub-blok tidak memiliki kapasitas untuk instance A4X Max, permintaan untuk membuat instance akan gagal.

Untuk membuat instance A4X Max, pilih salah satu opsi berikut.

Perintah berikut juga menetapkan cakupan akses untuk instance Anda. Untuk menyederhanakan pengelolaan izin, Google merekomendasikan agar Anda menetapkan cakupan akses pada instance ke akses cloud-platform, lalu menggunakan peran IAM untuk menentukan layanan yang dapat diakses instance. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik cakupan.

gcloud

Untuk membuat instance A4X Max, gunakan perintah gcloud compute instances create.

gcloud compute instances create INSTANCE_NAME  \
    --machine-type=a4x-maxgpu-4g-metal \
    --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=IDPF,network=IDPF_NETWORK_PREFIX-net,stack-type=IPV6_ONLY,subnet=IDPF_NETWORK_PREFIX-sub-0 \
    --network-interface=nic-type=IDPF,network=IDPF_NETWORK_PREFIX-net,stack-type=IPV6_ONLY,subnet=IDPF_NETWORK_PREFIX-sub-1,no-address \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --network-interface=subnet=default-subnet-1-RDMA_NAME_PREFIX-net,stack-type=IPV6_ONLY,nic-type=MRDMA \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure \
    --resource-policies=POLICY_NAME

Ganti kode berikut:

  • INSTANCE_NAME: nama instance A4X Max.
  • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan. Untuk mengetahui daftar sistem operasi yang didukung, lihat Detail sistem operasi.
  • IMAGE_PROJECT: project ID image OS.
  • ZONE: zona tempat jenis mesin yang ingin Anda gunakan tersedia. Anda harus menggunakan zona di region yang sama dengan kebijakan penempatan rapat. Untuk mengetahui informasi tentang region, lihat Ketersediaan GPU menurut region dan zona.
  • DISK_SIZE: ukuran boot disk dalam GB.
  • IDPF_NETWORK_PREFIX: awalan nama yang Anda tentukan saat membuat jaringan dan subnet VPC yang menggunakan NIC IDPF.
  • RDMA_NAME_PREFIX: awalan nama yang Anda tentukan saat membuat jaringan dan subnet VPC yang menggunakan NIC RDMA.
  • RESERVATION: nama pemesanan, blok, atau subblok dalam pemesanan. Untuk mendapatkan nama reservasi atau blok yang tersedia, lihat Melihat kapasitas yang dicadangkan. Berdasarkan persyaratan penempatan instance, pilih salah satu opsi berikut:
    • Untuk membuat instance A4X Max di satu blok:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • Untuk membuat instance A4X Max pada blok tertentu:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • Untuk membuat instance A4X Max di subblok tertentu:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: apakah Compute Engine menghentikan (STOP) atau menghapus (DELETE) instance A4X Max di akhir periode pemesanan.

  • POLICY_NAME: nama kebijakan penempatan yang ringkas.

REST

Untuk membuat instance A4X Max, buat permintaan POST ke metode instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/a4x-maxgpu-4g-metal",
  "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/IDPF_NETWORK_PREFIX-net",
      "nicType": "IDPF",
      "stackType": "IPV6_ONLY",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/IDPF_NETWORK_PREFIX-sub-0"
    },
    {
      "network": "projects/NETWORK_PROJECT_ID/global/networks/IDPF_NETWORK_PREFIX-net",
      "nicType": "IDPF",
      "stackType": "IPV6_ONLY",
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/IDPF_NETWORK_PREFIX-sub-1"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    },
    {
      "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/default-subnet-1-RDMA_NAME_PREFIX-net",
      "nicType": "MRDMA",
      "stackType": "IPV6_ONLY"
    }
  ],
  "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"
  ]
}

Ganti kode berikut:

  • PROJECT_ID: project ID project tempat Anda ingin membuat instance A4X Max.
  • ZONE: zona tempat jenis mesin yang ingin Anda gunakan tersedia. Anda harus menggunakan zona di region yang sama dengan kebijakan penempatan rapat. Untuk mengetahui informasi tentang region, lihat Ketersediaan GPU menurut region dan zona.
  • INSTANCE_NAME: nama instance A4X Max.
  • DISK_SIZE: ukuran boot disk dalam GB.
  • IMAGE_PROJECT: project ID image OS.
  • IMAGE_FAMILY: kelompok image dari image OS yang ingin Anda gunakan. Untuk mengetahui daftar sistem operasi yang didukung, lihat Detail sistem operasi.
  • NETWORK_PROJECT_ID: project ID jaringan.
  • IDPF_NETWORK_PREFIX: awalan nama yang Anda tentukan saat membuat jaringan dan subnet VPC yang menggunakan NIC IDPF.
  • REGION: region subnetwork.
  • RDMA_NAME_PREFIX: awalan nama yang Anda tentukan saat membuat jaringan dan subnet VPC yang menggunakan NIC RDMA.
  • RESERVATION: nama pemesanan, blok, atau subblok dalam pemesanan. Untuk mendapatkan nama reservasi atau blok yang tersedia, lihat Melihat kapasitas yang dicadangkan. Berdasarkan persyaratan penempatan instance, pilih salah satu opsi berikut:
    • Untuk membuat instance A4X Max di satu blok:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • Untuk membuat instance A4X Max pada blok tertentu:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • Untuk membuat instance A4X Max di subblok tertentu:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: apakah Compute Engine menghentikan (STOP) atau menghapus (DELETE) instance A4X Max di akhir periode pemesanan.

  • PROJECT_ID: project ID kebijakan penempatan ringkas.
  • REGION: region kebijakan penempatan yang ringkas.
  • POLICY_NAME: nama kebijakan penempatan yang ringkas.

Langkah berikutnya