Gruppen von GPU-VMs im Bulk erstellen


Mithilfe des Bulk-Erstellungsprozesses können Sie eine Gruppe virtueller Maschinen (VMs) mit angehängten grafischen Verarbeitungseinheiten (GPUs) erstellen. Bei der Bulk-Erstellung erhalten Sie eine Vorabvalidierung, bei der die Anfrage schnell fehlschlägt, wenn sie nicht umsetzbar ist. Wenn Sie außerdem das Regions-Flag verwenden, wählt die Bulk-Erstellungs-API automatisch die Zone aus, die über die Kapazität verfügt, um die Anfrage zu erfüllen. Weitere Informationen zur Bulk-Erstellung finden Sie unter Informationen zur Bulk-Erstellung von VMs.

Hinweise

  • Weitere erforderliche Schritte wie das Auswählen eines Betriebssystem-Images und das Prüfen von GPU-Kontingenten finden Sie im Dokument Übersicht.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

        Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

        gcloud init

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

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie für die Erstellung von VMs benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) für das Projekt zu gewähren. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen von VMs erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Erstellen von VMs erforderlich:

  • compute.instances.create für das Projekt
  • So erstellen Sie die VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
  • Um die VM mit einem Snapshot zu erstellen: compute.snapshots.useReadOnly für den Snapshot
  • So verwenden Sie eine Instanzvorlage zum Erstellen der VM: compute.instanceTemplates.useReadOnly für die Instanzvorlage
  • So weisen Sie der VM ein Legacy-Netzwerk zu: compute.networks.use für das Projekt
  • Um eine statische IP-Adresse für die VM festzulegen: compute.addresses.use für das Projekt
  • So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein Legacy-Netzwerk verwenden: compute.networks.useExternalIp für das Projekt
  • So geben Sie ein Subnetz für Ihre VM an: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
  • So weisen Sie der VM eine externe IP-Adresse zu, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
  • Um Metadaten der VM-Instanz für die VM festzulegen: compute.instances.setMetadata für das Projekt
  • Zum Festlegen von Tags für die VM: compute.instances.setTags auf der VM
  • So legen Sie Labels für die VM fest: compute.instances.setLabels auf der VM
  • So legen Sie ein Dienstkonto für die VM fest: compute.instances.setServiceAccount auf der VM
  • Um ein neues Laufwerk für die VM zu erstellen: compute.disks.create für das Projekt
  • So hängen Sie ein vorhandenes Laufwerk im Lese- oder Lese-/Schreibmodus an: compute.disks.use für das Laufwerk
  • So hängen Sie ein vorhandenes Laufwerk im Lesemodus an: compute.disks.useReadOnly für das Laufwerk

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

Überblick

Wenn Sie VMs mit angehängten GPUs mithilfe der Bulk-Erstellungsmethode erstellen, können Sie VMs in einer Region (z. B. us-central1) oder in einer bestimmten Zone (z. B. us-central1-a) erstellen.

Wenn Sie eine Region angeben, platziert Compute Engine die VMs in einer beliebigen Zone innerhalb der Region, die GPUs unterstützt.

Gruppen mit beschleunigungsoptimierten VMs erstellen

Die beschleunigungsoptimierte Maschinenfamilie ist in den Maschinentypen A3-Standard, A2-Standard und A2-Ultra sowie in den G2-Standard-Maschinentypen verfügbar.

Jeder beschleunigungsoptimierte Maschinentyp hat ein bestimmtes Modell von angehängten NVIDIA-GPUs.

  • Bei beschleunigungsoptimierten A3-Maschinentypen sind NVIDIA H100-GPUs mit 80 GB angehängt.
  • Bei beschleunigungsoptimierten A2-Maschinentypen sind NVIDIA A100-GPUs angehängt. Diese sind in den Optionen A100 mit 40 GB sowie A100 mit 80 GB verfügbar.
  • Bei beschleunigungsoptimierten G2-Maschinentypen sind NVIDIA L4-GPUs angehängt.

Sie erstellen eine Gruppe von beschleunigungsoptimierten VMs mit der Google Cloud CLI oder REST.

gcloud

Verwenden Sie zum Erstellen einer Gruppe von VMs den Befehl gcloud compute instances bulk create. Weitere Informationen zu den Parametern und zur Verwendung dieses Befehls finden Sie unter VMs im Bulk erstellen.

Die folgenden optionalen Flags werden im Beispielbefehl gezeigt:

  • Das Flag --preemptible, das Ihre VM als VM-Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für Ihre VM und der angehängten GPUs. Weitere Informationen finden Sie unter GPUs auf Instanzen auf Abruf.

  • Das Flag --accelerator zur Angabe einer virtuellen Workstation. Virtuelle NVIDIA RTX-Workstations (vWS) werden nur für G2-VMs unterstützt.

Beispiel

In diesem Beispiel werden zwei VMs mit angehängten GPUs anhand der folgenden Spezifikationen erstellt:

gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --region=REGION \
    --count=2 \
    --machine-type=MACHINE_TYPE \
    --boot-disk-size=200 \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT \
    --on-host-maintenance=TERMINATE --restart-on-failure \
    [--preemptible] \
    [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]

Dabei gilt:

  • REGION: Die Region für die VMs. Diese Region muss das ausgewählte GPU-Modell unterstützen.
  • MACHINE_TYPE: Der ausgewählte Maschinentyp Wählen Sie eine der folgenden Optionen aus:

    • Ein A3-Maschinentyp.
    • Ein A2-Maschinentyp.
    • Ein G2-Maschinentyp. G2-Maschinentypen unterstützen auch benutzerdefinierten Arbeitsspeicher. Der Arbeitsspeicher muss ein Vielfaches von 1.024 MB sein und innerhalb des unterstützten Arbeitsspeicherbereichs liegen. Geben Sie beispielsweise --machine-type=g2-custom-4-19456 an, um eine VM mit 4 vCPUs und 19 GB Arbeitsspeicher zu erstellen.
  • IMAGE: Ein Betriebssystem-Image, das GPUs unterstützt.

    Wenn Sie das neueste Image in einer Image-Familie verwenden möchten, ersetzen Sie das Flag --image durch das Flag --image-family und legen Sie dessen Wert auf eine Image-Familie fest, die GPUs unterstützt. Beispiel: --image-family=rocky-linux-8-optimized-gcp.

    Sie können auch ein benutzerdefiniertes Image oder Deep Learning VM Images angeben.

  • IMAGE_PROJECT: Das Compute Engine-Image-Projekt, zu dem das Betriebssystem-Image gehört. Wenn Sie ein benutzerdefiniertes Image oder Deep Learning VM Images verwenden, geben Sie das Projekt an, zu dem diese Images gehören.

  • VWS_ACCELERATOR_COUNT ist die Anzahl der benötigten virtuellen GPUs.

Falls erfolgreich sieht die Ausgabe etwa so aus:

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

REST

Verwenden Sie die Methode instances.bulkInsert mit den erforderlichen Parametern, um mehrere VMs in einer Zone zu erstellen. Weitere Informationen zu den Parametern und zur Verwendung dieses Befehls finden Sie unter VMs im Bulk erstellen.

Beispiel

In diesem Beispiel werden zwei VMs mit angehängten GPUs anhand der folgenden Spezifikationen erstellt:

  • VM-Namen: my-test-vm-1, my-test-vm-2
  • An jede VM sind zwei GPUs angehängt, für die der entsprechende beschleunigungsoptimierte Maschinentyps angegeben wird.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
    {
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":MACHINE_TYPE,
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":SOURCE_IMAGE_URI
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        "automaticRestart":true
      }
    }
    }
    

Dabei gilt:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: Die Region für die VMs. Diese Region muss das ausgewählte GPU-Modell unterstützen.
  • MACHINE_TYPE: Der ausgewählte Maschinentyp Wählen Sie eine der folgenden Optionen aus:

    • Ein A2-Maschinentyp.
    • Ein G2-Maschinentyp. G2-Maschinentypen unterstützen auch benutzerdefinierten Arbeitsspeicher. Der Arbeitsspeicher muss ein Vielfaches von 1.024 MB sein und innerhalb des unterstützten Arbeitsspeicherbereichs liegen. Geben Sie beispielsweise --machine-type=g2-custom-4-19456 an, um eine VM mit 4 vCPUs und 19 GB Arbeitsspeicher zu erstellen.
  • SOURCE_IMAGE_URI: Der URI für das spezifische Image oder die Image-Familie, die Sie verwenden möchten.

    Beispiel:

    • Spezifisches Image: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
    • Image-Familie: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp".

    Wenn Sie eine Image-Familie angeben, erstellt Compute Engine eine VM aus dem neuesten nicht verworfenen Betriebssystem-Image in dieser Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.

Zusätzliche Einstellungen:

  • Sie können die Kosten Ihrer VM und der angehängten GPUs mithilfe von VMs auf Abruf reduzieren. Weitere Informationen finden Sie unter GPUs auf VM-Instanzen auf Abruf. Fügen Sie der Anfrage die Option "preemptible": true hinzu, um die VM als VM auf Abruf festzulegen.

    "scheduling":
      {
        "onHostMaintenance": "terminate",
        "automaticRestart": true,
        "preemptible": true
      }
    
  • Für G2-VMs werden virtuelle NVIDIA RTX-Workstations (vWS) unterstützt. Fügen Sie der Anfrage die Option guestAccelerators hinzu, um eine virtuelle Workstation anzugeben. Ersetzen Sie VWS_ACCELERATOR_COUNT durch die Anzahl der benötigten virtuellen GPUs.

    "guestAccelerators":
     [
       {
         "acceleratorCount": VWS_ACCELERATOR_COUNT,
         "acceleratorType": "projects/PROJECT_ID/zones/ZONEacceleratorTypes/nvidia-l4-vws"
       }
     ]
    

Beschränkungen

A3-Standard

  • Sie erhalten keine Rabatte für kontinuierliche Nutzung und keine flexiblen Rabatte für zugesicherte Nutzung für VMs, die A3-Standard-Maschinentypen verwenden.
  • Sie können die A3-Standard-Maschinentypen nur in bestimmten Regionen und Zonen verwenden.
  • Sie können regionale nichtflüchtige Speicher nicht auf VMs verwenden, die A3-Standard-Maschinentypen verwenden.
  • Der A3-Standard-Maschinentyp ist nur auf der Sapphire Rapids-Plattform verfügbar.
  • Wenn Ihre VM einen A3-Standardmaschinentyp verwendet, können Sie den Maschinentyp nicht ändern. Wenn Sie einen anderen Maschinentyp verwenden müssen, müssen Sie eine neue VM erstellen.
  • Sie können keinen anderen Maschinentyp in einen A3-Standardmaschinentyp ändern. Wenn Sie eine VM erstellen müssen, die einen A3-Standardmaschinentyp verwendet, müssen Sie eine neue VM erstellen.
  • A3-Standardmaschinentypen unterstützen einzelne Mandanten nicht.
  • Sie können keine A3-Standard-Maschinentypen unter Windows-Betriebssystemen ausführen.

A2-Standard

  • Sie erhalten keine Rabatte für kontinuierliche Nutzung und keine flexiblen Rabatte für zugesicherte Nutzung für VMs, die A2-Standard-Maschinentypen verwenden.
  • Sie können die A2-Standard-Maschinentypen nur in bestimmten Regionen und Zonen verwenden.
  • Sie können regionale nichtflüchtige Speicher nicht auf VMs verwenden, die A2-Standard-Maschinentypen verwenden.
  • Die A2-Standard-Maschinentypen sind nur auf der Cascade Lake-Plattform verfügbar.
  • Wenn Ihre VM einen A2-Standardmaschinentyp verwendet, können Sie nur von einem A2-Standardmaschinentyp zu einem anderen A2-Standardmaschinentyp wechseln. Sie können keinen anderen Maschinentyp ändern. Weitere Informationen finden Sie unter Beschleunigeroptimierte VMs ändern.
  • Unter Windows-Betriebssystemen können Sie den A2-Standard-Maschinentyp a2-megagpu-16g nicht verwenden. Wählen Sie einen anderen A2-Standard-Maschinentyp aus, wenn Sie Windows-Betriebssysteme verwenden.
  • Sie können die schnelle Formatierung der angehängten lokalen SSDs nicht auf Windows-VMs verwenden, die A2-Standard-Maschinentypen verwenden. Um diese lokalen SSDs zu formatieren, müssen Sie eine vollständige Formatierung mit dem diskpart-Dienstprogramm durchführen und format fs=ntfs label=tmpfs angeben.
  • A2-Standardmaschinentypen unterstützen einzelne Mandanten nicht.

A2-Ultra

  • Sie erhalten keine Rabatte für kontinuierliche Nutzung und flexible Rabatte für zugesicherte Nutzung für VMs, die A2-Ultra-Maschinentypen verwenden.
  • Sie können die A2-Ultra-Maschinentypen nur in bestimmten Regionen und Zonen verwenden.
  • Sie können regionale nichtflüchtige Speicher nicht auf VMs verwenden, die A2-Ultra-Maschinentypen verwenden.
  • Die A2-Ultra-Maschinentypen sind nur auf der Cascade Lake-Plattform verfügbar.
  • Wenn Ihre VM einen A2-Ultra-Maschinentyp verwendet, können Sie den Maschinentyp nicht ändern. Wenn Sie einen anderen A2-Ultra-Maschinentyp oder einen anderen Maschinentyp verwenden müssen, müssen Sie eine neue VM erstellen.
  • Sie können keinen anderen Maschinentyp in einen A2-Ultra-Maschinentyp ändern. Wenn Sie eine VM erstellen müssen, die eine A2-Ultra-Maschinenfamilie verwendet, müssen Sie eine neue VM erstellen.
  • Sie können die schnelle Formatierung der angehängten lokalen SSDs nicht auf Windows-VMs verwenden, die A2-Ultra-Maschinentypen verwenden. Um diese lokalen SSDs zu formatieren, müssen Sie eine vollständige Formatierung mit dem diskpart-Dienstprogramm durchführen und format fs=ntfs label=tmpfs angeben.

G2-Standard

  • Sie erhalten keine Rabatte für kontinuierliche Nutzung und flexible Rabatte für zugesicherte Nutzung für VMs, die G2-Standard-Maschinentypen verwenden.
  • Sie können die G2-Standard-Maschinentypen nur in bestimmten Regionen und Zonen verwenden.
  • Sie können regionale nichtflüchtige Speicher nicht auf VMs verwenden, die G2-Standard-Maschinentypen verwenden.
  • Die G2-Standard-Maschinentypen sind nur auf der Cascade Lake-Plattform verfügbar.
  • Nichtflüchtige Standardspeicher (pd-standard) werden auf VMs, die G2-Standardmaschinentypen verwenden, nicht unterstützt. Informationen zu unterstützten Laufwerkstypen finden Sie unter Unterstützte Laufwerkstypen für G2.
  • Sie können keine GPUs mit mehreren Instanzen auf G2-Standard-Maschinentypen erstellen.
  • Wenn Sie den Maschinentyp einer G2-VM ändern müssen, lesen Sie die Informationen unter Beschleunigeroptimierte VMs ändern.
  • Sie können keine Deep Learning VM Images als Bootlaufwerke für Ihre VMs verwenden, die G2-Standard-Maschinentypen verwenden.
  • Der aktuelle Standardtreiber für Container-Optimized OS unterstützt keine L4-GPUs, die auf G2-Maschinentypen ausgeführt werden. Container-Optimized OS unterstützt auch nur bestimmte Treiber. Wenn Sie Container-Optimized OS auf G2-Maschinentypen verwenden möchten, lesen Sie die folgenden Hinweise:
    • Verwenden Sie eine Container-Optimized OS-Version, die die mindestens empfohlene NVIDIA-Treiberversion 525.60.13 oder höher unterstützt. Weitere Informationen finden Sie in den Versionshinweisen zu Container-Optimized OS.
    • Geben Sie bei der Installation des Treibers die neueste verfügbare Version an, die für die L4-GPUs funktioniert. Beispiel: sudo cos-extensions install gpu -- -version=525.60.13.
  • In den folgenden Szenarien müssen Sie über die Google Cloud CLI oder REST G2-VMs erstellen:
    • Sie möchten benutzerdefinierte Speicherwerte angeben.
    • Sie möchten die Anzahl der sichtbaren CPU-Kerne anpassen.

Gruppen von N1-VMs für allgemeine Zwecke erstellen

Sie erstellen eine Gruppe von VMs mit angehängten GPUs über die Google Cloud CLI oder REST.

In diesem Abschnitt wird beschrieben, wie Sie VMs mit folgenden GPU-Typen erstellen:

NVIDIA-GPUs:

  • NVIDIA® T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100
  • NVIDIA K80: nvidia-tesla-k80. Siehe NVIDIA K80-EOL.

NVIDIA RTX Virtuelle Workstation (vWS) (ehemals NVIDIA GRID):

  • NVIDIA T4 Virtual Workstation: nvidia-tesla-t4-vws
  • NVIDIA P4 Virtual Workstation: nvidia-tesla-p4-vws
  • NVIDIA P100 Virtual Workstation: nvidia-tesla-p100-vws

    Für diese virtuellen Workstations wird Ihrer VM automatisch eine Lizenz für NVIDIA RTX Virtual Workstation (vWS) hinzugefügt.

gcloud

Verwenden Sie zum Erstellen einer Gruppe von VMs den Befehl gcloud compute instances bulk create. Weitere Informationen zu den Parametern und zur Verwendung dieses Befehls finden Sie unter VMs im Bulk erstellen.

Beispiel

Im folgenden Beispiel werden zwei VMs mit angehängten GPUs mit den folgenden Spezifikationen erstellt:

  • VM-Namen: my-test-vm-1, my-test-vm-2
  • VMs, die in einer beliebigen Zone in us-central1 erstellt wurden, die GPUs unterstützt
  • An jede VM sind zwei T4-GPUs angehängt. Diese werden mit dem Flag „Beschleunigertyp“ und „Beschleunigeranzahl“ angegeben
  • Auf jeder VM sind GPU-Treiber installiert
  • Jede VM verwendet das Deep Learning VM Image pytorch-latest-gpu-v20211028-debian-10
gcloud compute instances bulk create \
    --name-pattern="my-test-vm-#" \
    --count=2 \
    --region=us-central1 \
    --machine-type=n1-standard-2 \
    --accelerator type=nvidia-tesla-t4,count=2 \
    --boot-disk-size=200 \
    --metadata="install-nvidia-driver=True" \
    --scopes="https://www.googleapis.com/auth/cloud-platform" \
    --image=pytorch-latest-gpu-v20211028-debian-10 \
    --image-project=deeplearning-platform-release \
    --on-host-maintenance=TERMINATE --restart-on-failure

Falls erfolgreich sieht die Ausgabe etwa so aus:

NAME          ZONE
my-test-vm-1  us-central1-b
my-test-vm-2  us-central1-b
Bulk create request finished with status message: [VM instances created: 2, failed: 0.]

REST

Verwenden Sie die Methode instances.bulkInsert mit den erforderlichen Parametern, um mehrere VMs in einer Zone zu erstellen. Weitere Informationen zu den Parametern und zur Verwendung dieses Befehls finden Sie unter VMs im Bulk erstellen.

Beispiel

Im folgenden Beispiel werden zwei VMs mit angehängten GPUs mit den folgenden Spezifikationen erstellt:

  • VM-Namen: my-test-vm-1, my-test-vm-2
  • VMs, die in einer beliebigen Zone in us-central1 erstellt wurden, die GPUs unterstützt
  • An jede VM sind zwei T4-GPUs angehängt. Diese werden mit dem Flag „Beschleunigertyp“ und „Beschleunigeranzahl“ angegeben
  • Auf jeder VM sind GPU-Treiber installiert
  • Jede VM verwendet das Deep Learning VM Image pytorch-latest-gpu-v20211028-debian-10

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/us-central1/instances/bulkInsert

{
    "namePattern":"my-test-vm-#",
    "count":"2",
    "instanceProperties": {
      "machineType":"n1-standard-2",
      "disks":[
        {
          "type":"PERSISTENT",
          "initializeParams":{
            "diskSizeGb":"200",
            "sourceImage":"projects/deeplearning-platform-release/global/images/pytorch-latest-gpu-v20211028-debian-10"
          },
          "boot":true
        }
      ],
      "name": "default",
      "networkInterfaces":
      [
        {
          "network": "projects/PROJECT_ID/global/networks/default"
        }
      ],
      "guestAccelerators":
      [
        {
          "acceleratorCount": 2,
          "acceleratorType": "nvidia-tesla-t4"
        }
      ],
      "scheduling":{
        "onHostMaintenance":"TERMINATE",
        "automaticRestart":true
      },
      "metadata":{
        "items":[
          {
            "key":"install-nvidia-driver",
            "value":"True"
          }
        ]
      }
  }
 }

Nächste Schritte