GPUs hinzufügen oder entfernen

Compute Engine bietet GPUs, die Sie Ihren VM-Instanzen hinzufügen können. Sie können diese GPUs nutzen, um bestimmte Arbeitslasten wie maschinelles Lernen und Datenverarbeitung auf Ihren Instanzen zu beschleunigen.

Weitere Informationen zu den Vorteilen von GPUs und den unterschiedlichen Arten von GPU-Hardware finden Sie unter GPUs in Compute Engine.

Hinweise

Instanz mit einer GPU erstellen

Bevor Sie eine Instanz mit einer GPU erstellen, wählen Sie aus, welches Bootlaufwerk-Image für die Instanz verwendet werden soll, und achten Sie darauf, dass der entsprechende GPU-Treiber installiert ist.

Wenn Sie GPUs für maschinelles Lernen nutzen, können Sie ein Deep Learning VM-Image für Ihre Instanz verwenden. Deep Learning VM-Images haben vorinstallierte GPU-Treiber und enthalten Pakete wie TensorFlow und PyTorch. Sie können die Deep Learning VM-Images auch für allgemeine GPU-Arbeitslasten verwenden. Informationen zu den verfügbaren Images und den in den Images installierten Paketen finden Sie in der Deep Learning-VM-Dokumentation.

Sie können auch ein beliebiges öffentliches Image oder ein benutzerdefiniertes Image verwenden. Manche Images erfordern aber unter Umständen einen speziellen Treiber oder einen Installationsvorgang, der in dieser Anleitung nicht behandelt wird. Sie müssen erkennen, welche Treiber für Ihre Images geeignet sind.

Hinweise zur Installation von Treibern finden Sie unter GPU-Treiber installieren.

Wenn Sie eine Instanz mit einer oder mehreren GPUs erstellen, muss sie so eingestellt werden, dass sie während einer Hostwartung beendet wird. Instanzen mit GPUs können keine Livemigration ausführen, da sie bestimmten Hardwaregeräten zugewiesen sind. Weitere Informationen dazu finden Sie unter "GPU-Einschränkungen".

Zum Erstellen einer Instanz mit einer oder mehreren GPUs können Sie die Google Cloud Console, das gcloud-Befehlszeilentool oder die API verwenden.

Console

  1. Öffnen Sie die Seite der VM-Instanzen.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Wählen Sie eine Zone, in der GPUs verfügbar sind. Siehe dazu die Liste der verfügbaren Zonen mit GPUs.
  4. Wählen Sie im Abschnitt Maschinenkonfiguration den Maschinentyp aus, den Sie für diese Instanz verwenden möchten. Alternativ dazu können Sie auch entsprechende Einstellungen für einen benutzerdefinierten Maschinentyp festlegen.
  5. Klicken Sie im Abschnitt Maschinenkonfiguration auf CPU-Plattform und GPU. Es werden dann erweiterte Optionen für Maschinentypen und verfügbare GPUs angezeigt.
  6. Klicken Sie auf GPUs, um die Liste verfügbarer GPUs aufzurufen.
  7. Geben Sie den GPU-Typ und die Anzahl der benötigten GPUs an.
  8. Passen Sie bei Bedarf den Maschinentyp Ihren gewünschten GPU-Einstellungen entsprechend an. Wenn Sie diese Einstellungen unverändert lassen, verwendet die Instanz den vordefinierten Maschinentyp, den Sie vor dem Öffnen des Anpassungsbildschirms für den Maschinentyp angegeben haben.
  9. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren.
  10. Wählen Sie auf dem Tab Betriebssystemimages ein Image aus.
  11. Klicken Sie auf Auswählen, um Ihre Bootlaufwerksoptionen zu bestätigen.
  12. Konfigurieren Sie alle weiteren erforderlichen Instanzeinstellungen. Sie können beispielsweise die Einstellungen für die Präemptivität ändern, um Ihre Instanz als Instanz auf Abruf zu konfigurieren. Dadurch senken Sie die Kosten für die Instanz und die angeschlossenen GPUs. Weitere Informationen finden Sie unter GPUs in Instanzen auf Abruf.
  13. Klicken Sie unten auf der Seite auf Erstellen, um die Instanz zu erstellen.

gcloud

Verwenden Sie den Befehl regions describe, um sicherzustellen, dass Sie ein ausreichendes GPU-Kontingent in der Region haben, in der Sie Instanzen mit GPUs erstellen möchten. Ersetzen Sie region durch die Region, für die Sie das GPU-Kontingent prüfen möchten.

gcloud compute regions describe region

Verwenden Sie zum Erstellen und Starten einer Instanz denBefehl gcloud compute instances create mit den folgenden Flags:

gcloud compute instances create instance-name \
    --machine-type machine-type --zone zone \
    --accelerator type=accelerator-type,count=accelerator-count \
    --image-family image-family --image-project image-project \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Ersetzen Sie Folgendes:

  • instance-name: Der Name der neuen Instanz.
  • machine-type: Der Maschinentyp, den Sie für die Instanz ausgewählt haben. Unter GPUs in Compute Engine können Sie sehen, welche Maschinentypen basierend auf der von Ihnen gewünschten Anzahl an GPUs verfügbar sind.
  • zone: Die Zone für die Instanz.
  • image-family: Eine Image-Familie, die GPUs unterstützt.
  • image-project: Das Image-Projekt, zu dem die Image-Familie gehört.
  • accelerator-count: Die Anzahl der GPUs, die Sie Ihrer Instanz hinzufügen möchten. Unter GPUs in Compute Engine finden Sie eine Liste der GPU-Limits, basierend auf dem Maschinentyp Ihrer Instanz.
  • accelerator-type: Das GPU-Modell, das Sie verwenden möchten. Verwenden Sie einen der folgenden Werte:

    • NVIDIA® Tesla® T4: nvidia-tesla-t4
    • NVIDIA® Tesla® T4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® Tesla® P4: nvidia-tesla-p4
    • NVIDIA® Tesla® P4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® Tesla® P100: nvidia-tesla-p100
    • NVIDIA® Tesla® P100 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® Tesla® V100: nvidia-tesla-v100
    • NVIDIA® Tesla® K80: nvidia-tesla-k80

    Unter GPUs in Compute Engine finden Sie eine Liste der verfügbaren GPU-Modelle.

  • --preemptible ist ein optionales Flag, das die Instanz als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für die Instanz und die angeschlossenen GPUs. Weitere Informationen finden Sie unter GPUs in Instanzen auf Abruf.

Sie können zum Beispiel mit dem folgenden gcloud-Befehl eine Ubuntu 16.04-Instanz mit 1 NVIDIA Tesla K80-GPU und 2 vCPUs in der Zone us-east1-d starten.

gcloud compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 --zone us-east1-d \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure

API

Identifizieren Sie den GPU-Typ, den Sie Ihrer Instanz hinzufügen möchten. Senden Sie eine GET-Anfrage, um die GPU-Typen aufzulisten, die Ihrem Projekt in einer bestimmten Zone zur Verfügung stehen.

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes

Ersetzen Sie Folgendes:

  • project-id: Die Projekt-ID.
  • zone: Die Zone, aus der Sie die verfügbaren GPU-Typen auflisten möchten.

Stellen Sie in der API eine POST-Anfrage, um eine neue Instanz zu erstellen. Verwenden Sie den Parameter acceleratorType, um anzugeben, welchen GPU-Typ Sie verwenden möchten, und fügen Sie den Parameter acceleratorCount ein, um anzugeben, wie viele GPUs Sie hinzufügen möchten. Setzen Sie außerdem den Parameter onHostMaintenance auf TERMINATE.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances?key={YOUR_API_KEY}
{
  "machineType": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/machineTypes/machine-type",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "disk-size",
        "sourceImage": "https://compute.googleapis.com/compute/v1/projects/image-project/global/images/family/image-family"
      },
      "boot": true
    }
  ],
  "name": "instance-name",
  "networkInterfaces":
  [
    {
      "network": "https://compute.googleapis.com/compute/v1/projects/project-id/global/networks/network"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": accelerator-count,
      "acceleratorType": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes/accelerator-type"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Ersetzen Sie Folgendes:

  • instance-name: Der Name der Instanz.
  • project-id: Ihre Projekt-ID.
  • zone: Die Zone für die Instanz.
  • machine-type: Der Maschinentyp, den Sie für die Instanz ausgewählt haben. Unter GPUs in Compute Engine können Sie sehen, welche Maschinentypen basierend auf der von Ihnen gewünschten Anzahl an GPUs verfügbar sind.
  • image-family: Ein Bootlaufwerks-Image für Ihre Instanz. Geben Sie eine Image-Familie aus der Liste der verfügbaren öffentlichen Images an.
  • image-project: Das Image-Projekt, zu dem die Image-Familie gehört.
  • disk-size: Die Größe Ihres Bootlaufwerks in GB.
  • network: Das VPC-Netzwerk, das Sie für die Instanz verwenden möchten. Sie können default angeben, um Ihr Standardnetzwerk zu verwenden.
  • accelerator-count: Die Anzahl der GPUs, die Sie Ihrer Instanz hinzufügen möchten. Unter GPUs in Compute Engine finden Sie eine Liste der GPU-Limits, basierend auf dem Maschinentyp Ihrer Instanz.
  • accelerator-type: Das GPU-Modell, das Sie verwenden möchten. Unter GPUs in Compute Engine finden Sie eine Liste der verfügbaren GPU-Modelle.
  • "preemptible": true ist ein optionaler Parameter, der die Instanz als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für die Instanz und die angeschlossenen GPUs. Weitere Informationen finden Sie unter GPUs in Instanzen auf Abruf.

Installieren Sie den GPU-Treiber auf Ihrer Instanz, damit Ihr System das Gerät verwenden kann.

GPUs auf vorhandenen Instanzen hinzufügen oder entfernen

Sie können auf Ihren vorhandenen Instanzen GPUs hinzufügen oder entfernen. Dazu müssen Sie aber zuerst die Instanz anhalten und ihre Host-Wartungseinstellung so ändern, dass sie herunterfährt, statt eine Livemigration durchzuführen. Instanzen mit GPUs können keine Livemigration ausführen, da sie bestimmten Hardwaregeräten zugewiesen sind. Weitere Informationen dazu finden Sie unter "GPU-Einschränkungen".

Beachten Sie auch, dass Sie GPU-Treiber auf dieser Instanz installieren müssen, nachdem Sie eine GPU hinzugefügt haben. Das Bootlaufwerks-Image, das Sie zum Erstellen dieser Instanz verwendet haben, bestimmt, welche Treiber Sie benötigen. Sie müssen feststellen, welche Treiber für das Betriebssystem auf den nichtflüchtigen Bootlaufwerk-Images Ihrer Instanz geeignet sind. Weitere Einzelheiten finden Sie unter GPU-Treiber installieren.

Zum Hinzufügen von GPUs zu einer Instanz oder Entfernen von GPUs daraus können Sie die Google Cloud Console oder die API verwenden.

Console

Um GPUs in Ihrer Instanz hinzuzufügen oder daraus zu entfernen, beenden Sie die Instanz und bearbeiten Sie die Konfiguration der Instanz.

  1. Prüfen Sie, ob alle kritischen Anwendungen auf der Instanz angehalten wurden. Sie müssen die Instanz beenden, bevor Sie eine GPU hinzufügen können.

  2. Rufen Sie die Seite "VM-Instanzen" auf, um sich die Liste der Instanzen anzusehen.

    Zur Seite "VM-Instanzen"

  3. Klicken Sie in der Instanzenliste auf den Namen der Instanz, der Sie GPUs hinzufügen möchten. Die Seite mit den Instanzdetails wird geöffnet.

  4. Klicken Sie oben auf der Seite mit den Instanzdetails auf Beenden, um die Instanz zu beenden.

  5. Wenn die Instanz nicht mehr ausgeführt wird, klicken Sie auf Bearbeiten, um die Instanzattribute zu ändern.

  6. Handelt es sich bei der Instanz um einen Maschinentyp mit gemeinsam genutztem Kern, müssen Sie den Maschinentyp ändern und eine oder mehrere vCPUs angeben. Sie können Instanzen mit Maschinentypen mit gemeinsam genutztem Kern keine Beschleuniger hinzufügen.

  7. Klicken Sie im Abschnitt Maschinenkonfiguration auf CPU-Plattform und GPU. Es werden dann erweiterte Optionen für Maschinentypen und verfügbare GPUs angezeigt.

  8. Klicken Sie auf GPUs, um die Liste verfügbarer GPUs aufzurufen.

  9. Wählen Sie die Anzahl der GPUs und das GPU-Modell aus, das Sie der Instanz hinzufügen möchten. Sie können die Anzahl der GPUs auch auf Keine festlegen, dann werden vorhandene GPUs aus der Instanz entfernt.

  10. Wenn Sie einer Instanz GPUs hinzugefügt haben, setzen Sie die Einstellung für die Hostwartung auf Beenden. Wenn Sie GPUs aus der Instanz entfernt haben, können Sie optional die Einstellung für die Hostwartung auf VM-Instanz migrieren zurücksetzen.

  11. Klicken Sie unten auf der Seite auf Speichern, um die Änderungen zu übernehmen.

  12. Nach dem Speichern der Instanzeinstellungen klicken Sie oben auf der Seite mit den Instanzdetails auf Starten, um die Instanz wieder hochzufahren.

API

Sie können GPUs zu Ihrer Instanz hinzufügen oder aus ihr entfernen, indem Sie die Instanz beenden und die Konfiguration der Instanz über die API ändern.

  1. Prüfen Sie, ob alle Ihre kritischen Anwendungen auf der Instanz angehalten wurden. Erstellen Sie dann einen POST-Befehl, um die Instanz zu beenden, damit sie auf ein Hostsystem verschoben werden kann, in dem GPUs verfügbar sind.

    POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/stop
    

    Ersetzen Sie Folgendes:

    • instance-name: Der Name der Instanz, die gestoppt werden soll. Dies ist die Instanz, an die Sie GPUs anhängen möchten.
    • zone: Die Zone, in der sich die Instanz befindet.
  2. Identifizieren Sie den GPU-Typ, den Sie Ihrer Instanz hinzufügen möchten. Senden Sie eine GET-Anfrage, um die GPU-Typen aufzulisten, die Ihrem Projekt in einer bestimmten Zone zur Verfügung stehen.

    GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes
    

    Ersetzen Sie Folgendes:

    • project-id: Ihre Projekt-ID.
    • zone: Die Zone, deren verfügbare GPU-Typen Sie auflisten möchten.
  3. Handelt es sich bei der Instanz um einen Maschinentyp mit gemeinsam genutztem Kern, müssen Sie den Maschinentyp ändern und eine oder mehrere vCPUs angeben. Sie können Instanzen mit Maschinentypen mit gemeinsam genutztem Kern keine Beschleuniger hinzufügen.

  4. Nachdem die Instanz beendet wurde, erstellen Sie eine POST-Anfrage, um Ihrer Instanz eine oder mehrere GPUs hinzuzufügen oder daraus zu entfernen.

    POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name/setMachineResources
    
        {
         "guestAccelerators": [
          {
            "acceleratorCount": accelerator-count,
            "acceleratorType": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/acceleratorTypes/accelerator-type"
          }
         ]
        }
    

    Ersetzen Sie Folgendes:

    • instance-name: Der Name der Instanz.
    • project-id: Ihre Projekt-ID.
    • zone: Die Zone für diese Instanz.
    • accelerator-count: Die Anzahl der GPUs, die Sie Ihrer Instanz anhängen möchten. Eine Liste der GPU-Limits je nach Maschinentyp Ihrer Instanz finden Sie unter GPUs in Compute Engine.
    • accelerator-type: Das GPU-Modell, das Sie verwenden möchten. Eine Liste der verfügbaren GPU-Modelle finden Sie unter GPUs in Compute Engine.
  5. Erstellen Sie einen POST-Befehl, um die Zeitplanoptionen für die Instanz festzulegen. Wenn Sie einer Instanz GPUs hinzufügen, müssen Sie "onHostMaintenance": "TERMINATE" angeben. Wenn Sie GPUs aus einer Instanz entfernen, können Sie optional "onHostMaintenance": "MIGRATE" angeben.

    POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/setScheduling
    
    {
    "onHostMaintenance": "maintenance-type",
    "automaticRestart": true
    }
    

    Ersetzen Sie Folgendes:

    • instance-name: Der Name der Instanz, der GPUs hinzugefügt werden sollen.
    • zone: Die Zone, in der sich die Instanz befindet.
    • maintenance-type: Die Aktion, die Ihre Instanz ausführen soll, wenn der Host gewartet werden muss. Geben Sie TERMINATE an, wenn Sie Ihrer Instanz GPUs hinzufügen. Alternativ können Sie "onHostMaintenance": "MIGRATE" angeben, wenn Sie alle GPUs aus Ihrer Instanz entfernt haben und die Instanz die Migration bei Host-Wartungsereignissen wiederaufnehmen soll.
  6. Starten Sie die Instanz:

    POST https://compute.googleapis.com/compute/v1/projects/compute/zones/zone/instances/instance-name/start
    

    Ersetzen Sie Folgendes:

    • instance-name: Der Name der Instanz, der Sie GPUs hinzufügen möchten.
    • zone: Die Zone, in der sich die Instanz befindet.

Anschließend installieren Sie den GPU-Treiber auf der Instanz, damit Ihr System das Gerät verwenden kann.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation