KI-optimierte Instanz mit A4X Max erstellen

In diesem Dokument werden die Schritte zum Erstellen eigenständiger Compute Engine-Instanzen beschrieben, die beschleunigungsoptimierte A4X Max-Maschinentypen verwenden. Informationen zum Erstellen eines GKE-Clusters mit A4X Max-Instanzen finden Sie unter KI-optimierten GKE-Cluster mit A4X Max erstellen. Informationen zu allen Optionen für die Erstellung von Compute-Instanzen und Clustern finden Sie unter Übersicht über die Bereitstellungsoptionen.

A4X Max-Instanztyp

Eine Compute Engine-Instanz oder Compute-Instanz ist eine Computing-Ressource, die in der Infrastruktur von Google gehostet wird und entweder eine virtuelle Maschine (VM) oder eine Bare-Metal-Instanz sein kann. A4X Max-Instanzen sind als Bare-Metal-Instanzen verfügbar. Diese unterscheiden sich von VM-Instanzen dadurch, dass sie direkten, nicht virtualisierten Zugriff auf die zugrunde liegende physische Hardware bieten. Weitere Informationen zum Maschinentyp A4X Max finden Sie in der Compute Engine-Dokumentation unter A4X Max-Serie und GPU-Netzwerkbandbreite.

Beschränkungen

Wenn Sie eine eigenständige A4X Max-Instanz erstellen, gelten die folgenden Einschränkungen:

Lesen Sie auch die Einschränkungen für Platzierungsrichtlinien.

Hinweis

Bevor Sie A4X Max-Instanzen erstellen, führen Sie die folgenden Schritte aus, falls Sie dies noch nicht getan haben:

  1. Nutzungsoption auswählen: Die gewählte Nutzungsoption bestimmt, wie Sie GPU-Ressourcen erhalten und verwenden. Weitere Informationen finden Sie unter Nutzungsoption auswählen.
  2. Kapazität erhalten: Der Prozess zum Erhalten von Kapazität unterscheidet sich je nach Verbrauchsoption. Informationen zum Erhalten von Kapazität für die von Ihnen ausgewählte Nutzungsoption finden Sie unter Kapazitätsübersicht.

Wählen Sie den Tab für die gewünschte Verwendung der Beispiele auf dieser Seite aus:

Console

Wenn Sie über die Google Cloud Console auf Dienste und APIs von Google Cloud zugreifen, müssen Sie die Authentifizierung nicht einrichten.

gcloud

Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:

gcloud init

REST

Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

    Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.

Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Compute-Instanzen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von Compute-Instanzen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Erstellen von Compute-Instanzen erforderlich:

  • compute.instances.create für das Projekt
  • Zum Erstellen der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
  • Zum Erstellen der VM mit einem Snapshot: compute.snapshots.useReadOnly für den Snapshot
  • Zum Erstellen der VM mit einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
  • Zum Angeben eines Subnetzes für Ihre VM: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
  • Zum Festlegen einer statischen IP-Adresse für die VM: compute.addresses.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
  • Zum Zuweisen eines Legacy-Netzwerks zur VM: compute.networks.use für das Projekt
  • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein Legacy-Netzwerk verwenden: compute.networks.useExternalIp für das Projekt
  • Zum Festlegen von Metadaten der VM-Instanz für die VM: compute.instances.setMetadata für das Projekt
  • Zum Festlegen von Tags für die VM: compute.instances.setTags für die VM
  • Zum Festlegen von Labels für die VM: compute.instances.setLabels für die VM
  • Zum Festlegen eines Dienstkontos für die VM: compute.instances.setServiceAccount für die VM
  • Zum Erstellen eines neuen Laufwerks für die VM: compute.disks.create für das Projekt
  • Zum Anhängen eines vorhandenen Laufwerks im Lese- oder Lese-/Schreibmodus: compute.disks.use für das Laufwerk
  • Zum Anhängen eines vorhandenen Laufwerks im Lesemodus: compute.disks.useReadOnly für das Laufwerk

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

A4X Max-Grundlagen

Ein A4X Max-Cluster ist in einer Hierarchie von Blöcken und Unterblöcken organisiert, um eine nicht blockierende Netzwerkleistung in großem Maßstab zu ermöglichen. Diese Topologie ist wichtig, wenn Sie Kapazität reservieren und Arbeitslasten bereitstellen.

A4X Max-Instanz
Eine A4X Max-Instanz ist ein einzelner A4X Max-Maschinentyp mit 4 angehängten GPUs.
Unterblock
Ein Unterblock ist die grundlegende Einheit der A4X Max-Kapazität. Bei A4X Max besteht ein Unterblock aus 18 A4X Max-Instanzen (72 GPUs). Diese Instanzen bilden eine NVLink-Domain und sind über ein Multi-Knoten-NVLink-System verbunden. Sie erstellen einen A4X Max-Unterblock, indem Sie eine Richtlinie für kompakte Platzierung anwenden, die eine 1x72-Topologie angibt.
Blockieren
Ein A4X Max-Block besteht aus 25 Unterblöcken (NVLink-Domains) mit insgesamt bis zu 450 A4X Max-Instanzen (1.800 GPUs). Die Subblöcke sind für eine effiziente Skalierung mit Rail-Architektur ausgerichtet. Für jeden Unterblock ist eine Richtlinie für kompakte Platzierung erforderlich. Daher können Sie für einen einzelnen A4X Max-Block 25 Richtlinien für kompakte Platzierung erstellen.

In der folgenden Tabelle sind die unterstützten Topologieoptionen für A4X Max-Instanzen aufgeführt:

Topologie (gpuTopology) Anzahl der GPUs Anzahl der Instanzen
1x72 72 18

Übersicht

Das Erstellen einer Instanz mit dem Maschinentyp A4X Max umfasst die folgenden Schritte:

  1. VPC-Netzwerke erstellen
  2. Richtlinie für kompakte Platzierung erstellen
  3. Instanz erstellen
  4. GPU-Treiber installieren

VPC-Netzwerke erstellen

Wenn Sie das Netzwerk für A4X Max-Maschinentypen einrichten möchten, erstellen Sie drei VPC-Netzwerke für die folgenden Netzwerkschnittstellen:

  • 2 reguläre VPC-Netzwerke für die IDPF-Netzwerkschnittstellen (NICs). Die NICs verwenden diese VPC-Netzwerke dann für die Host-zu-Host-Kommunikation.
  • 1 VPC-Netzwerk mit dem RoCE-Metal-Netzwerkprofil für die CX-8-NICs, wenn mehrere A4X Max-Subblöcke erstellt werden. In einem RoCE-VPC-Netzwerk für Bare-Metal-Instanzen wird automatisch ein einzelnes Subnetz mit dem Namen default-subnet-1-RDMA_NAME_PREFIX-net für alle acht CX-8-NICs erstellt. Diese NICs verwenden RDMA over Converged Ethernet (RoCE) und bieten die Kommunikation mit hoher Bandbreite und niedriger Latenz, die für die horizontale Skalierung auf mehrere A4X Max-Unterblöcke erforderlich ist.

Weitere Informationen zur NIC-Anordnung finden Sie unter Netzwerkbandbreite und NIC-Anordnung prüfen.

Erstellen Sie die Netzwerke entweder manuell anhand der Anleitungen oder automatisch mit dem bereitgestellten Script.

Anleitungen

So erstellen Sie die Netzwerke:

Legen Sie für diese VPC-Netzwerke die maximale Übertragungseinheit (MTU) auf einen höheren Wert fest. Für A4X Max-Maschinentypen beträgt die empfohlene MTU 8896 Byte. Informationen zu den empfohlenen MTU-Einstellungen für andere GPU-Maschinentypen finden Sie unter MTU-Einstellungen für GPU-Maschinentypen.

Skript

So erstellen Sie die Netzwerke:

Legen Sie für diese VPC-Netzwerke einen höheren Wert für die maximale Übertragungseinheit (MTU) fest. Für A4X Max-Maschinentypen wird eine MTU von 8896 Byte empfohlen. Informationen zu den empfohlenen MTU-Einstellungen für andere GPU-Maschinentypen finden Sie unter MTU-Einstellungen für GPU-Maschinentypen.

  1. Verwenden Sie das folgende Skript, um reguläre VPC-Netzwerke für die IDPF-NICs zu erstellen.

    
    
        #!/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. Wenn Sie mehrere A4X Max-Subblöcke benötigen, verwenden Sie das folgende Script, um das RoCE-VPC-Netzwerk für Bare-Metal-Instanzen (roce-metal) zu erstellen, und verwenden Sie das automatisch erstellte Subnetz für die acht CX-8-NICs auf jeder A4X Max-Instanz.

    
    
        #!/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 RoCE VPC network for bare metal instances (roce-metal)
        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.
    
    
          
  3. Ersetzen Sie Folgendes:

    • IDPF_NETWORK_PREFIX: Das benutzerdefinierte Namenspräfix, das für die regulären VPC-Netzwerke und Subnetze für die IDPF-NICs verwendet werden soll.
    • RDMA_NAME_PREFIX: das benutzerdefinierte Namenspräfix, das für das RoCE-VPC-Netzwerk für Bare-Metal-Instanzen (roce-metal) für die CX-8-NICs verwendet werden soll.
    • ZONE: Geben Sie eine Zone an, in der der gewünschte Maschinentyp verfügbar ist, z. B. us-central1-a. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.
    • REGION: Die Region, in der Sie die Subnetze erstellen möchten. Diese Region muss der angegebenen Zone entsprechen. Wenn Ihre Zone beispielsweise us-central1-a ist, lautet Ihre Region us-central1.
    • IP_RANGE: Der IP-Bereich, der für die SSH-Firewallregeln verwendet werden soll.
  4. Optional: Prüfen Sie in der Google Cloud -Konsole die Netzwerkeinstellungen, um festzustellen, ob die VPC-Netzwerkressourcen erfolgreich erstellt wurden:
    1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

      Zur Seite VPC-Netzwerke

    2. Suchen Sie in der Liste nach den Netzwerken, die Sie im vorherigen Schritt erstellt haben.
    3. Klicken Sie auf den Namen des Netzwerks, um die Subnetze, Firewallregeln und andere Netzwerkeinstellungen aufzurufen.

Richtlinie für kompakte Platzierung erstellen

Wählen Sie eine der folgenden Optionen aus, um eine Richtlinie für kompakte Platzierung zu erstellen:

gcloud

Verwenden Sie zum Erstellen einer Richtlinie für kompakte Platzierung den Befehl gcloud compute resource-policies create group-placement:

gcloud compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --gpu-topology=1x72 \
    --region=REGION

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.
  • REGION: Die Region, in der Sie die Richtlinie für kompakte Platzierung erstellen möchten. Geben Sie die Region an, die die Zone enthält, in der Sie Instanzen erstellen möchten, und prüfen Sie, ob der gewünschte Maschinentyp in dieser Region verfügbar ist. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.

REST

Senden Sie zum Erstellen einer Richtlinie für kompakte Platzierung eine POST-Anfrage an die Methode resourcePolicies.insert.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.
  • REGION: Die Region, in der Sie die Richtlinie für kompakte Platzierung erstellen möchten. Geben Sie die Region an, die die Zone enthält, in der Sie Instanzen erstellen möchten, und prüfen Sie, ob der gewünschte Maschinentyp in dieser Region verfügbar ist. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.

A4X Max-Instanz erstellen

Wählen Sie die Erstellungsoption aus, die zu Ihrer Arbeitslastarchitektur passt:

  • Instanz in einer NVLink-Domain mit 72 GPUs (NVL72) erstellen: Am besten geeignet für umfangreiches verteiltes Training, Feinabstimmung und Inferenzarbeitslasten mit mehreren Knoten, die eine GPU-Kommunikation mit hoher Bandbreite und niedriger Latenz über bis zu 18 Instanzen (72 GPUs) über die NVLink-Fabric mit mehreren Knoten erfordern. Sie müssen eine Richtlinie für kompakte Platzierung verwenden.
  • Eigenständige 4-GPU-Instanz (NVL4) erstellen: Am besten für Arbeitslasten mit einem einzelnen Knoten, kleinere Modellinferenzen, Batchverarbeitung und interaktive Entwicklung geeignet, die auf vier GPUs passen und nur NVLink-Peering innerhalb des Knotens erfordern. Sie müssen einen bestimmten Reservierungsunterblock als Ziel festlegen, um diesen Unterblock in eigenständige Instanzen zu partitionieren. Sie müssen keine Richtlinie für kompakte Platzierung verwenden.

Instanz in einer NVLink-Domain mit 72 GPUs erstellen (1x72-Topologie)

Wenn Sie eine GPU-Topologie von 1x72 erhalten möchten, erstellen Sie 18 A4X Max-Instanzen. Wenden Sie beim Erstellen der Instanzen die Richtlinie für kompakte Platzierung an, die das Feld gpuTopology angibt. Durch die Anwendung der Richtlinie wird sichergestellt, dass Compute Engine alle 18 A4X Max-Instanzen in einem Unterblock erstellt, um eine NVLink-Domain zu verwenden. Wenn ein Unterblock nicht genügend Kapazität für eine A4X Max-Instanz hat, schlägt die Anfrage zum Erstellen der Instanz fehl.

Wählen Sie eine der folgenden Optionen aus, um eine A4X Max-Instanz zu erstellen.

Mit den folgenden Befehlen wird auch der Zugriffsbereich für Ihre Instanzen festgelegt. Um die Berechtigungsverwaltung zu vereinfachen, empfiehlt Google, den Zugriffsbereich für eine Instanz auf cloud-platform-Zugriff festzulegen und dann mithilfe von IAM-Rollen zu definieren, auf welche Dienste die Instanz zugreifen kann. Weitere Informationen finden Sie unter Best Practices für Bereiche.

gcloud

Verwenden Sie den Befehl gcloud compute instances create, um die A4X Max-Instanz zu erstellen.

A4X Max-Instanzen unterstützen die folgenden Arten von Reservierungen:

  • Vorausschauende Reservierungen für Kapazitätsblöcke
  • Vorausschauende Reservierungen im Kalendermodus

Damit diese Arten von Reservierungen genutzt werden können, muss eine Instanz das reservierungsgebundene Bereitstellungsmodell verwenden. Verwenden Sie beispielsweise die folgenden Erstellungsparameter.

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

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der A4X Max-Instanz.
  • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten. Eine Liste aller unterstützten Betriebssysteme finden Sie unter Unterstützte Betriebssysteme.
  • IMAGE_PROJECT: die Projekt-ID des Betriebssystem-Images.
  • ZONE: die Zone, in der der gewünschte Maschinentyp verfügbar ist. Sie müssen eine Zone in derselben Region wie die Richtlinie für kompakte Platzierung verwenden. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.
  • DISK_SIZE: Die Größe des Bootlaufwerks in GB. Weitere Informationen finden Sie je nach Laufwerkstyp unter Größenbeschränkungen für Google Cloud Hyperdisk oder Größenbeschränkungen für Persistent Disk.
  • IDPF_NETWORK_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die IDPF-NICs verwenden.
  • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die RDMA-NICs verwenden.
  • RESERVATION: der Name der Reservierung, ein Block oder ein Unterblock innerhalb einer Reservierung. Informationen zum Abrufen des Reservierungsnamens oder der verfügbaren Blöcke finden Sie unter Reservierte Kapazität ansehen. Wählen Sie je nach Ihren Anforderungen an die Instanzplatzierung eine der folgenden Optionen aus:
    • So erstellen Sie A4X Max-Instanzen in einem einzelnen Block:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • So erstellen Sie A4X Max-Instanzen in einem bestimmten Block:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • So erstellen Sie A4X Max-Instanzen in einem bestimmten Subblock:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: Gibt an, ob Compute Engine die A4X Max-Instanz am Ende des Reservierungszeitraums beendet (STOP) oder löscht (DELETE).

  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.

REST

Senden Sie zum Erstellen der A4X Max-Instanz eine POST-Anfrage an die Methode instances.insert.

A4X Max-Instanzen unterstützen die folgenden Arten von Reservierungen:

  • Vorausschauende Reservierungen für Kapazitätsblöcke
  • Vorausschauende Reservierungen im Kalendermodus

Damit diese Arten von Reservierungen genutzt werden können, muss eine Instanz das reservierungsgebundene Bereitstellungsmodell verwenden. Verwenden Sie beispielsweise die folgenden Erstellungsparameter.

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"
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des Projekts, in dem Sie die A4X Max-Instanz erstellen möchten.
  • ZONE: die Zone, in der der gewünschte Maschinentyp verfügbar ist. Sie müssen eine Zone in derselben Region wie die Richtlinie für kompakte Platzierung verwenden. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.
  • INSTANCE_NAME: der Name der A4X Max-Instanz.
  • DISK_SIZE: Die Größe des Bootlaufwerks in GB. Weitere Informationen finden Sie je nach Laufwerkstyp unter Größenbeschränkungen für Google Cloud Hyperdisk oder Größenbeschränkungen für Persistent Disk.
  • IMAGE_PROJECT: die Projekt-ID des Betriebssystem-Images.
  • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten. Eine Liste aller unterstützten Betriebssysteme finden Sie unter Unterstützte Betriebssysteme.
  • NETWORK_PROJECT_ID: die Projekt-ID des Netzwerks.
  • IDPF_NETWORK_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die IDPF-NICs verwenden.
  • REGION: die Region des Subnetzwerks.
  • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die RDMA-NICs verwenden.
  • RESERVATION: der Name der Reservierung, ein Block oder ein Unterblock innerhalb einer Reservierung. Informationen zum Abrufen des Reservierungsnamens oder der verfügbaren Blöcke finden Sie unter Reservierte Kapazität ansehen. Wählen Sie je nach Ihren Anforderungen an die Instanzplatzierung eine der folgenden Optionen aus:
    • So erstellen Sie A4X Max-Instanzen in einem einzelnen Block:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME
          
    • So erstellen Sie A4X Max-Instanzen in einem bestimmten Block:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
          
    • So erstellen Sie A4X Max-Instanzen in einem bestimmten Subblock:
          projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
          
  • TERMINATION_ACTION: Gibt an, ob Compute Engine die A4X Max-Instanz am Ende des Reservierungszeitraums beendet (STOP) oder löscht (DELETE).

  • PROJECT_ID: die Projekt-ID der Richtlinie für kompakte Platzierung.
  • REGION: die Region der Richtlinie für kompakte Platzierungen.
  • POLICY_NAME: der Name der Richtlinie für kompakte Platzierung.

Eigenständige Instanz mit 4 GPUs (NVL4) erstellen

NVL4 partitioniert die NVLink-Domain, um unabhängige Instanzen auf der NVLink-Fabric zu erstellen. Wenn Sie eigenständige NVL4-Instanzen erstellen möchten, müssen Sie angeben, welcher Unterblock innerhalb der Reservierung partitioniert werden soll. Da jede A4X Max-Instanz unabhängig voneinander funktioniert, müssen Sie keine Richtlinien für kompakte Platzierung verwenden. Die NVLink-Kommunikation mit vier GPUs innerhalb eines Knotens wird für instanzinterne Arbeitslasten vollständig unterstützt.

Beachten Sie vor dem Erstellen eigenständiger NVL4-Instanzen Folgendes:

  • Kapazitäts- und Unterblock-Targeting: Wenn Sie eigenständige NVL4-Instanzen erstellen möchten, müssen Sie einen bestimmten Reservierungsunterblock als Ziel festlegen. Die kleinste Einheit der reservierten Kapazität ist ein ganzer Unterblock, d. h. eine NVLink-Domain mit 18 Instanzen oder 72 GPUs. Sie können einzelne NVL4-Instanzen nicht einzeln reservieren. Beim Bereitstellen von NVL4-Instanzen partitionieren Sie einen reservierten Unterblock in bis zu 18 unabhängige Knoten. Sie können auch eine Reservierung für einen Unterblock von einem Hostprojekt für Nutzerprojekte freigeben.
  • Statische Partitionierung und Konfigurationsänderungen: Subblock-Bereitstellungen sind statisch. Wenn Sie die Konfiguration eines Unterblocks ändern möchten, z. B. von einer NVLink-Domain mit mehreren Knoten (1x72) zu eigenständigen NVL4-Instanzen oder umgekehrt, müssen Sie alle vorhandenen Instanzen in diesem Unterblock löschen, bevor Sie sie mit der neuen Konfiguration neu erstellen.
  • Gemischte Bereitstellungen in einem Unterblock: Sie können Instanzen innerhalb derselben Unterblockreservierung sowohl eigenständigen Compute Engine-Instanzen als auch GKE-Knotenpools zuweisen, z. B. 12 eigenständige Compute Engine-Instanzen für die Entwicklung und 6 Instanzen in einem GKE-Knotenpool bereitstellen.
  • NCCL- und NVLS-Konfiguration: Wenn Sie verteilte Arbeitslasten mit NCCL über NVL4-Instanzen ausführen, deaktivieren Sie NVLink SHARP, indem Sie die Umgebungsvariable NCCL_NVLS_ENABLE=0 festlegen. Google Cloud konfiguriert keine CUDA-Multicast-Gruppen für die Kommunikation zwischen mehreren Knoten in partitionierten Domains.

Wenn Sie einen gesamten Unterblock reserviert haben, der aus 18 Instanzen oder 72 GPUs besteht, und alle 18 eigenständigen A4X Max-Instanzen bereitstellen möchten, führen Sie den Erstellungsbefehl 18-mal aus. Achten Sie darauf, dass jeder Befehl auf denselben Reservierungsunterblock abzielt.

Wählen Sie eine der folgenden Optionen aus, um eine eigenständige A4X Max-Instanz mit vier GPUs zu erstellen:

gcloud

Verwenden Sie den Befehl gcloud compute instances create, um die A4X Max-Instanz zu erstellen.

A4X Max-Instanzen unterstützen die folgenden Arten von Reservierungen:

  • Vorausschauende Reservierungen für Kapazitätsblöcke
  • Vorausschauende Reservierungen im Kalendermodus

Damit diese Arten von Reservierungen genutzt werden können, muss eine Instanz das reservierungsgebundene Bereitstellungsmodell verwenden. Verwenden Sie beispielsweise die folgenden Erstellungsparameter.

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_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der A4X Max-Instanz.
  • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten. Eine Liste aller unterstützten Betriebssysteme finden Sie unter Unterstützte Betriebssysteme.
  • IMAGE_PROJECT: die Projekt-ID des Betriebssystem-Images.
  • ZONE: die Zone, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.
  • DISK_SIZE: Die Größe des Bootlaufwerks in GB. Weitere Informationen finden Sie je nach Laufwerkstyp unter Größenbeschränkungen für Google Cloud Hyperdisk oder Größenbeschränkungen für Persistent Disk.
  • IDPF_NETWORK_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die IDPF-NICs verwenden.
  • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die RDMA-NICs verwenden.
  • RESERVATION_NAME: der Name Ihrer Reservierung.
  • BLOCK_NAME: der Name eines bestimmten Blocks innerhalb der Reservierung.
  • SUB_BLOCK_NAME: der Name des spezifischen Unterblocks innerhalb des Blocks.
  • TERMINATION_ACTION: Gibt an, ob Compute Engine die A4X Max-Instanz am Ende des Reservierungszeitraums beendet (STOP) oder löscht (DELETE).

REST

Senden Sie zum Erstellen der A4X Max-Instanz eine POST-Anfrage an die Methode instances.insert.

A4X Max-Instanzen unterstützen die folgenden Arten von Reservierungen:

  • Vorausschauende Reservierungen für Kapazitätsblöcke
  • Vorausschauende Reservierungen im Kalendermodus

Damit diese Arten von Reservierungen genutzt werden können, muss eine Instanz das reservierungsgebundene Bereitstellungsmodell verwenden. Verwenden Sie beispielsweise die folgenden Erstellungsparameter.

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_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAME"
    ]
  },
  "scheduling": {
    "provisioningModel": "RESERVATION_BOUND",
    "instanceTerminationAction": "TERMINATION_ACTION",
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID des Projekts, in dem Sie die A4X Max-Instanz erstellen möchten.
  • ZONE: die Zone, in der der gewünschte Maschinentyp verfügbar ist. Informationen zu Regionen finden Sie unter GPU-Verfügbarkeit nach Regionen und Zonen.
  • INSTANCE_NAME: der Name der A4X Max-Instanz.
  • DISK_SIZE: Die Größe des Bootlaufwerks in GB. Weitere Informationen finden Sie je nach Laufwerkstyp unter Größenbeschränkungen für Google Cloud Hyperdisk oder Größenbeschränkungen für Persistent Disk.
  • IMAGE_PROJECT: die Projekt-ID des Betriebssystem-Images.
  • IMAGE_FAMILY: die Image-Familie des Betriebssystem-Images, das Sie verwenden möchten. Eine Liste aller unterstützten Betriebssysteme finden Sie unter Unterstützte Betriebssysteme.
  • NETWORK_PROJECT_ID: die Projekt-ID des Netzwerks.
  • IDPF_NETWORK_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die IDPF-NICs verwenden.
  • REGION: die Region des Subnetzwerks.
  • RDMA_NAME_PREFIX: Das Namenspräfix, das Sie beim Erstellen der VPC-Netzwerke und -Subnetze angegeben haben, die RDMA-NICs verwenden.
  • RESERVATION_NAME: der Name Ihrer Reservierung.
  • BLOCK_NAME: der Name eines bestimmten Blocks innerhalb der Reservierung.
  • SUB_BLOCK_NAME: der Name des spezifischen Unterblocks innerhalb des Blocks.
  • TERMINATION_ACTION: Gibt an, ob Compute Engine die A4X Max-Instanz am Ende des Reservierungszeitraums beendet (STOP) oder löscht (DELETE).

GPU-Treiber installieren

Nachdem Sie eine Instanz erstellt haben, kann die Instanz ihre GPUs nur verwenden, wenn die richtigen GPU-Treiber bereits installiert sind. Wenn Sie kein Betriebssystem-Image mit GPU-Treibern angegeben haben, finden Sie weitere Informationen unter GPU-Treiber installieren in der Compute Engine-Dokumentation.

Nächste Schritte