N1-VM mit angehängten GPUs erstellen


In diesem Dokument wird erläutert, wie Sie eine VM mit angehängten GPUs erstellen, die eine N1-Maschinenfamilie verwendet. Sie können die meisten N1-Maschinentypen, mit Ausnahme von N1 shared-core, verwenden.

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 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.

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 auf Projekte, Ordner und Organisationen 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.

Übersicht

Die folgenden GPU-Modelle können an VMs angehängt werden, die N1-Maschinenfamilien verwenden.

NVIDIA-GPUs:

  • NVIDIA® T4: nvidia-tesla-t4
  • NVIDIA P4: nvidia-tesla-p4
  • NVIDIA P100: nvidia-tesla-p100
  • NVIDIA V100: nvidia-tesla-v100

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.

VM mit angehängten GPUs erstellen

Sie können eine N1-VM mit angehängten GPUs mit der Google Cloud Console, der Google Cloud CLI oder REST erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.

    Zur Seite „Instanz erstellen“

  2. Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  3. Wählen Sie eine Region und Zone aus, in denen GPUs verfügbar sind. Siehe dazu die Liste der verfügbaren GPU-Zonen.

  4. Wählen Sie im Abschnitt Maschinenkonfiguration die Maschinenfamilie GPUs aus und gehen Sie dann so vor:

    1. Wählen Sie in der Liste GPU-Typ eines der auf N1-Maschinen unterstützten GPU-Modelle aus.
    2. Wählen Sie in der Liste Anzahl der GPUs die Anzahl der GPUs aus.
    3. Wenn Ihr GPU-Modell NVIDIA RTX Virtual Workstations (vWS) für Grafikarbeitslasten unterstützt und Sie grafikintensive Arbeitslasten auf dieser VM ausführen möchten, wählen Sie Virtuelle Workstation (NVIDIA GRID) aktivieren

    4. Wählen Sie in der Liste Maschinentyp einen der voreingestellten N1-Maschinentypen aus. Alternativ dazu können Sie auch Einstellungen für einen benutzerdefinierten Maschinentyp festlegen.

  5. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern. Dadurch wird die Seite Konfiguration des Bootlaufwerks geöffnet.

  6. Führen Sie auf der Seite Bootlaufwerkkonfiguration die folgenden Schritte aus:

    1. Wählen Sie auf dem Tab Öffentliche Images ein unterstütztes Compute Engine-Image oder Deep Learning VM Images aus.
    2. Geben Sie eine Bootlaufwerkgröße von mindestens 40 GB an.
    3. Klicken Sie auf Auswählen, um die Bootlaufwerksoptionen zu bestätigen.
  7. Optional: Bereitstellungsmodell konfigurieren. Wenn Ihre Arbeitslast beispielsweise fehlertolerant ist und einer möglichen vorzeitigen VM-Beendigung standhält, können Sie Spot-VMs verwenden, um die Kosten für Ihre VMs und die angeschlossenen GPUs zu senken. Weitere Informationen finden Sie unter GPUs auf Spot-VMs. Dazu müssen Sie die folgenden Schritte ausführen:

    1. Wählen Sie im Abschnitt Verfügbarkeitsrichtlinien aus der Liste VM-Bereitstellungsmodell die Option Spot aus. Diese Einstellung deaktiviert die Optionen für den automatischen Neustart und die Hostwartung für die VM.
    2. Optional: Wählen Sie in der Liste Beim Beenden der VM aus, was passiert, wenn Compute Engine die VM vorzeitig beendet:
      • Wählen Sie Beenden (Standardeinstellung) aus, um die VM während des vorzeitigen Beendens zu stoppen.
      • Wählen Sie Löschen aus, um die VM während des vorzeitigen Beendens zu löschen.
  8. Klicken Sie zum Erstellen und Starten der VM auf Erstellen.

gcloud

Verwenden Sie zum Erstellen und Starten einer VM den Befehl gcloud compute instances create mit den folgenden Flags.

Wenn Ihre Arbeitslast fehlertolerant ist und einer möglichen vorzeitigen VM-Beendigung standhält, können Sie Spot-VMs verwenden, um die Kosten für Ihre VMs und die angeschlossenen GPUs zu senken. Weitere Informationen finden Sie unter GPUs auf Spot-VMs. --provisioning-model=SPOT ist ein optionales Flag, das Ihre VMs als Spot-VMs konfiguriert. Bei Spot-VMs sind die Flags für den automatischen Neustart und die Hostwartung deaktiviert.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --boot-disk-size DISK_SIZE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE \
    [--provisioning-model=SPOT]

Ersetzen Sie Folgendes:

  • VM_NAME: Der Name für die neue VM.
  • MACHINE_TYPE: der Maschinentyp, den Sie für Ihre VM ausgewählt haben.
  • ZONE: die Zone für die VM. Diese Zone muss den GPU-Typ unterstützen.
  • DISK_SIZE: die Größe Ihres Bootlaufwerks in GB. Geben Sie eine Bootlaufwerkgröße von mindestens 40 GB an.
  • IMAGE oder IMAGE_FAMILY, die GPUs unterstützt. Wählen Sie eine der folgenden Optionen aus:

    • IMAGE: die erforderliche Version eines öffentlichen Image. Beispiel: --image debian-10-buster-v20200309
    • IMAGE_FAMILY: eine Image-Familie. Dadurch wird die VM aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise --image-family debian-10 angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Image in der Debian 10-Image-Familie an.

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

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

  • ACCELERATOR_COUNT ist die Anzahl der GPUs, die Sie an Ihre VM anhängen möchten. Unter GPUs in Compute Engine finden Sie eine Liste der GPU-Limits, basierend auf dem Maschinentyp Ihrer VM.

  • ACCELERATOR_TYPE: das GPU-Modell, das Sie verwenden möchten. Wenn Sie grafikintensive Arbeitslasten auf dieser VM ausführen möchten, verwenden Sie eines der virtuellen Workstation-Modelle.

    Wählen Sie einen der folgenden Werte aus:

    • NVIDIA-GPUs:

      • NVIDIA® T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • 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.

Beispiel

Sie können zum Beispiel mit folgendem gcloud-Befehl eine Ubuntu 22.04-VM mit einer NVIDIA T4-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 \
    --boot-disk-size 40GB \
    --accelerator type=nvidia-tesla-t4,count=1 \
    --image-family ubuntu-2204-lts \
    --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE

REST

Identifizieren Sie den GPU-Typ, den Sie Ihrer VM 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.

Wenn Ihre Arbeitslast fehlertolerant ist und einer möglichen vorzeitigen VM-Beendigung standhält, können Sie Spot-VMs verwenden, um die Kosten für Ihre VMs und die angeschlossenen GPUs zu senken. Weitere Informationen finden Sie unter GPUs auf Spot-VMs. "provisioningModel": "SPOT" ist ein optionaler Parameter, der Ihre VMs als Spot-VMs konfiguriert. Bei Spot-VMs sind die Flags für den automatischen Neustart und die Hostwartung deaktiviert.

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.

Senden Sie eine POST-Anfrage an die Methode instances.insert. 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
{
  "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "DISK_SIZE",
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
      },
      "boot": true
    }
  ],
  "name": "VM_NAME",
  "networkInterfaces":
  [
    {
      "network": "projects/PROJECT_ID/global/networks/NETWORK"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": ACCELERATOR_COUNT,
      "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/ACCELERATOR_TYPE"
    }
  ],
  "scheduling":
  {
    ["automaticRestart": true],
    "onHostMaintenance": "TERMINATE",
    ["provisioningModel": "SPOT"]
  },
}

Ersetzen Sie Folgendes:

  • VM_NAME: der Name der VM.
  • PROJECT_ID: Ihre Projekt-ID.
  • ZONE: die Zone für die VM. Diese Zone muss den GPU-Typ unterstützen.
  • MACHINE_TYPE: der Maschinentyp, den Sie für die VM 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.
  • Für IMAGE oder IMAGE_FAMILY muss eine der folgenden Optionen angegeben werden:

    • IMAGE: die erforderliche Version eines öffentlichen Image. Beispiel: "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
    • IMAGE_FAMILY: eine Image-Familie. Dadurch wird die VM aus dem neuesten nicht verworfenen Betriebssystem-Image erstellt. Wenn Sie beispielsweise "sourceImage": "projects/debian-cloud/global/images/family/debian-10" angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der Debian 10-Image-Familie an.

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

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

  • DISK_SIZE: die Größe Ihres Bootlaufwerks in GB. Geben Sie eine Bootlaufwerkgröße von mindestens 40 GB an.

  • NETWORK: das VPC-Netzwerk, das Sie für die VM verwenden möchten. Sie können default angeben, um Ihr Standardnetzwerk zu verwenden.

  • ACCELERATOR_COUNT ist die Anzahl der GPUs, die Sie an Ihre VM anhängen möchten. Unter GPUs in Compute Engine finden Sie eine Liste der GPU-Limits, basierend auf dem Maschinentyp Ihrer VM.

  • ACCELERATOR_TYPE: das GPU-Modell, das Sie verwenden möchten. Wenn Sie grafikintensive Arbeitslasten auf dieser VM ausführen möchten, verwenden Sie eines der virtuellen Workstation-Modelle.

    Wählen Sie einen der folgenden Werte aus:

    • NVIDIA-GPUs:

      • NVIDIA® T4: nvidia-tesla-t4
      • NVIDIA P4: nvidia-tesla-p4
      • NVIDIA P100: nvidia-tesla-p100
      • NVIDIA V100: nvidia-tesla-v100
    • 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.

Treiber installieren

Wählen Sie eine der folgenden Optionen aus, um die Treiber zu installieren:

Nächste Schritte