MIG mit GPU-VMs erstellen


In diesem Dokument wird beschrieben, wie Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) mit VM-Instanzen mit angehängten GPUs erstellen. Dabei wird beschrieben, wie Sie mithilfe von Anfragen zur Größenänderung GPU-VMs auf einmal der Gruppe hinzufügen.

Mit einer Anfrage zur Größenänderung lässt sich die Verfügbarkeit von GPU-VMs in einer MIG verbessern. Geben Sie in der Anfrage die Anzahl der GPU-VMs und eine Dauer an, für die diese VMs ausgeführt werden sollen. Der zugrunde liegende Planungsmechanismus Dynamic Workload Scheduler (DWS) plant Anfragen zur Größenänderung, die in der Compute Engine erstellt wurden, basierend auf der angeforderten Dauer und der Ressourcenverfügbarkeit. Sobald die Ressourcen verfügbar sind, erstellt die MIG automatisch die VMs.

Wenn der auf diesen VMs ausgeführte Job vor Ablauf der angeforderten Dauer abgeschlossen ist, können Sie diese VMs löschen. Andernfalls löscht die MIG die VMs automatisch, wenn die Dauer abgelaufen ist.

Weitere Informationen zu anderen grundlegenden Szenarien zum Erstellen einer MIG

Vorbereitung

  • Prüfen Sie Ihr GPU-Kontingent, damit Ihr Kontingent für die angeforderten Ressourcen ausreicht.
  • Weitere Informationen zum Kontingentverbrauch finden Sie unter GPU-VMs und Zuteilungskontingente auf Abruf.
  • 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 bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

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

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Beschränkungen

Lesen Sie die Einschränkungen für das Erstellen einer Anfrage zur Größenänderung in einer MIG.

MIG erstellen und GPU-VMs hinzufügen gleichzeitig

So erstellen Sie eine MIG und fügen gleichzeitig GPU-VMs in der Gruppe hinzu:

  1. Erstellen Sie eine Instanzvorlage. Dies ist zum Erstellen einer MIG erforderlich. Die MIG erstellt jede VM in der Gruppe anhand der Instanzvorlage. Geben Sie in der Vorlage die Konfiguration für GPU-VMs und die zusätzlichen Konfigurationen an, die für die Verwendung von Anfragen zur Größenänderung erforderlich sind.

    Weitere Informationen zu Instanzvorlagen finden Sie unter Instanzvorlagen.

  2. Erstellen Sie eine MIG und eine Anfrage zur Größenänderung, um GPU-VMs gleichzeitig hinzuzufügen.

Instanzvorlage erstellen

Erstellen Sie eine Instanzvorlage wie in diesem Abschnitt beschrieben und verwenden Sie die Vorlage dann, um eine MIG zu erstellen.

Console

  1. Rufen Sie die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie im Feld Name einen Namen für die Instanzvorlage ein.

  4. Führen Sie im Abschnitt Maschinenkonfiguration die folgenden Schritte aus:

    1. Klicken Sie auf den Tab GPUs.
    2. Wählen Sie im Menü GPU-Typ den GPU-Typ.
    3. Wählen Sie in der Liste Anzahl der GPUs die Anzahl der GPUs aus.
    4. Wählen Sie im Menü Maschinentyp einen Maschinentyp aus.
  5. Optional: Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um den Standardwert für den Bootlaufwerktyp oder das Image zu ändern. Folgen Sie dann den Aufforderungen, um das Bootlaufwerk zu ändern.

  6. Maximieren Sie den Abschnitt Erweiterte Optionen und gehen Sie dann so vor:

    1. Maximieren Sie den Bereich Verwaltung.
    2. Wählen Sie im Menü Reservierungen die Option Nicht verwenden aus.
  7. Klicken Sie auf Erstellen.

gcloud

Erstellen Sie mit dem Befehl instance-templates create eine Instanzvorlage.

Mit dem folgenden Befehl wird eine globale Instanzvorlage auf der Grundlage eines Deep Learning-VM-Images erstellt.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-project=deeplearning-platform-release \
    --image-family=common-cu121 \
    --maintenance-policy=TERMINATE \
    --reservation-affinity=none

Ersetzen Sie dabei Folgendes:

  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • MACHINE_TYPE ist ein Maschinentyp, der GPUs unterstützt. Wenn Sie einen N1-Maschinentyp angeben, fügen Sie das Flag --accelerator ein, um die Anzahl und den Typ der GPUs anzugeben, die an Ihre VMs angehängt werden sollen.

REST

Erstellen Sie eine Instanzvorlage. Stellen Sie dazu eine POST-Anfrage an die Methode instanceTemplates.insert:

Mit der folgenden Anfrage wird eine globale Instanzvorlage auf der Grundlage eines Deep Learning-VM-Images erstellt.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "mode": "READ_WRITE",
        "type": "PERSISTENT",
        "initializeParams": {
          "sourceImage": "projects/deeplearning-platform-release/global/images/family/common-cu121"
        }
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-IP",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: durch die ID des Projekts, in dem Sie die MIG erstellen möchten.
  • INSTANCE_TEMPLATE_NAME ist der Name der Instanzvorlage.
  • MACHINE_TYPE ist ein Maschinentyp, der GPUs unterstützt. Wenn Sie einen N1-Maschinentyp angeben, fügen Sie das Feld guestAccelerators ein, um die Anzahl und den Typ der GPUs anzugeben, die an Ihre VMs angehängt werden sollen.

MIG erstellen und GPU-VMs hinzufügen gleichzeitig

Erstellen Sie eine MIG wie in diesem Abschnitt beschrieben. Wenn Sie eine Anfrage zur Größenanpassung in der MIG verwenden möchten, dürfen Sie kein Autoscaling konfigurieren und Reparaturen deaktivieren.

Console

  1. Rufen Sie die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Geben Sie die folgenden Felder ein:

    1. Name: Geben Sie einen Namen für die Gruppe ein.
    2. Instanzvorlage: Wählen Sie die Instanzvorlage aus, die Sie im vorherigen Abschnitt konfiguriert haben.
    3. Im Bereich Standort:
      1. Wählen Sie Einzelne Zone aus.
      2. Wählen Sie in den Listen Region und Zone den Standort aus, an dem Sie die Gruppe erstellen möchten.

    Das Feld Anzahl der Instanzen kann bearbeitet werden, nachdem Sie in den nächsten Schritten die Autoscaling-Konfiguration gelöscht und Reparaturen deaktiviert haben.

  4. So löschen Sie die Autoscaling-Konfiguration:

    1. Klicken Sie im Abschnitt Autoscaling auf die Liste Autoscaling-Modus und dann auf Autoscaling-Konfiguration löschen.
    2. Klicken Sie im Dialogfeld Autoscaling-Konfiguration löschen? auf Löschen.
  5. So deaktivieren Sie Reparaturen in der MIG:

    Legen Sie im Abschnitt Lebenszyklus von VM-Instanzen im Feld Standardaktion bei Fehler die Option Keine Aktion fest.

  6. Geben Sie die Anzahl der GPU-VMs und die Laufzeit an, um einen Antrag auf Größenänderung zu erstellen:

    1. Geben Sie im Feld Anzahl der Instanzen die Anzahl der GPU-VMs ein, die Sie auf einmal erstellen möchten.

      Das Feld „Anzahl der Instanzen“ auf der Seite „Instanzgruppe erstellen“.

    2. Klicken Sie das Kästchen Anfrage zur Größenanpassung verwenden, um VMs auf einmal zu erstellen an. Die Felder zum Eingeben der Laufzeit werden angezeigt.

    3. Geben Sie im Feld Angeforderte Ausführungsdauer und in der Liste Einheit die Ausführungsdauer der GPU-VMs an. Die Dauer muss zwischen 1 Stunde und 7 Tagen liegen.

  7. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl instance-groups managed create eine zonale MIG.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
       --template=INSTANCE_TEMPLATE_NAME \
       --size=0 \
       --zone=ZONE \
       --default-action-on-vm-failure=do_nothing
    
  2. Erstellen Sie in der MIG mit dem Befehl instance-groups managed resize-requests create eine Anfrage zur Größenänderung. Geben Sie die gewünschte Anzahl der GPU-VMs und die Dauer an, für die diese VMs ausgeführt werden sollen.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
       --resize-request=RESIZE_REQUEST_NAME \
       --resize-by=COUNT \
       --requested-run-duration=RUN_DURATION\
       --zone=ZONE
    

Ersetzen Sie dabei Folgendes:

  • INSTANCE_GROUP_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_NAME: durch den Name der Instanzvorlage für GPU-VMs.
  • ZONE: Eine für Compute Engine verfügbare Zone.
  • RESIZE_REQUEST_NAME durch den Name der Anfrage zur Größenänderung.
  • COUNT: durch die Anzahl der VMs, die alle gleichzeitig in der Gruppe hinzugefügt werden sollen.
  • RUN_DURATION: durch die Dauer, für die die angeforderten VMs ausgeführt werden sollen. Der Wert muss als Anzahl der Tage, Stunden, Minuten oder Sekunden gefolgt von d, h, m oder s formatiert werden. Geben Sie beispielsweise 30m für 30 Minuten oder 1d2h3m4s für 1 Tag, 2 Stunden, 3 Minuten und 4 Sekunden an. Der Wert muss zwischen 10 Minuten und 7 Tagen liegen.

REST

  1. Erstellen Sie eine zonale MIG. Stellen Sie dazu eine POST-Anfrage an die Methode instanceGroupManagers.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
     "versions": [
       {
         "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME"
       }
     ],
     "name": "INSTANCE_GROUP_NAME",
     "targetSize": 0,
     "instanceLifecyclePolicy": {
       "defaultActionOnFailure": "DO_NOTHING"
     }
    }
    
  2. Erstellen Sie in der MIG eine Anfrage zur Größenänderung. Senden Sie dazu eine POST-Anfrage an die Methode instanceGroupManagerResizeRequests.insert. Geben Sie im Anfragetext die Anzahl der GPU-VMs an, die Sie auf einmal erstellen möchten, und die Dauer, für die diese VMs ausgeführt werden sollen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
    {
     "name": "RESIZE_REQUEST_NAME",
     "resizeBy": COUNT,
     "requestedRunDuration": {
       "seconds": "RUN_DURATION"
     }
    }
    

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: durch die ID des Projekts, in dem Sie die MIG erstellen möchten.
  • INSTANCE_GROUP_NAME: Name der MIG.
  • INSTANCE_TEMPLATE_NAME: durch den Name der Instanzvorlage für GPU-VMs.
  • ZONE: Eine für Compute Engine verfügbare Zone.
  • RESIZE_REQUEST_NAME durch den Name der Anfrage zur Größenänderung.
  • COUNT: durch die Anzahl der VMs, die alle gleichzeitig in der Gruppe hinzugefügt werden sollen.
  • RUN_DURATION durch die Dauer in Sekunden, in der die angeforderten VMs ausgeführt werden sollen, bevor die MIG sie automatisch löscht. Der Wert muss zwischen 600, d. h. 600 Sekunden (10 Minuten) und 604800, also 604.800 Sekunden (7 Tage) liegen.

Die von Ihnen erstellte Anfrage zur Größenänderung bleibt im Status ACCEPTED, bis die MIG alle angeforderten GPU-VMs erstellt hat. Nachdem alle GPU-VMs in der Gruppe erstellt wurden, ändert sich der Status der Anfrage in SUCCEEDED.

Nächste Schritte