VMs mit angehängten GPUs erstellen


Compute Engine stellt Grafikprozessoren (Graphics Processing Units, GPUs) bereit, die Sie Ihren virtuellen Maschinen (VMs) hinzufügen können. Sie können diese GPUs nutzen, um bestimmte Arbeitslasten wie maschinelles Lernen und Datenverarbeitung auf Ihren VMs zu beschleunigen.

Auf dieser Seite wird erläutert, wie Sie eine VM mit angehängten GPUs erstellen. Informationen zum Hinzufügen von GPUs zu vorhandenen VMs finden Sie unter GPUs hinzufügen oder entfernen.

Um zu erfahren, was Sie mit GPUs machen können und welche GPU-Hardware es gibt, lesen Sie GPUs in Compute Engine.

Hinweise

  • Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten:
    1. Installieren Sie das gcloud-Befehlszeilentool oder aktualisieren Sie es auf die neueste Version.
    2. Legen Sie eine Standardregion und -zone fest.
  • Wenn Sie die API-Beispiele dieser Anleitung verwenden möchten, richten Sie den API-Zugang ein.
  • Lesen Sie mehr über die GPU-Preisgestaltung bei Compute Engine, um zu erfahren, was Sie die Nutzung von GPUs in Ihren VMs kostet.
  • Lesen Sie mehr über die Einschränkungen für VMs mit GPUs.
  • Prüfen Sie Ihr GPU-Kontingent.
  • Wählen Sie ein Betriebssystem-Image aus:
    • Wenn Sie GPUs für maschinelles Lernen nutzen, können Sie ein Deep Learning VM-Image für Ihre VM 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 unter Image auswählen.
    • 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 diesem Dokument 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.

GPU-Kontingent prüfen

Zum Schutz der Systeme und Nutzer von Compute Engine haben neue Projekte ein globales GPU-Kontingent, das die Gesamtzahl der GPUs begrenzt, die Sie in einer unterstützten Zone erstellen können.

Verwenden Sie den Befehl regions describe, um dafür zu sorgen, dass Sie ein ausreichendes GPU-Kontingent in der Region haben, in der Sie VMs mit GPUs erstellen möchten.

gcloud compute regions describe REGION

Ersetzen Sie REGION durch die Region, für die Sie das GPU-Kontingent prüfen möchten.

Fordern Sie eine Kontingentaufstockung an, falls Sie Ihr GPU-Kontingent erhöhen müssen. Wenn Sie ein GPU-Kontingent anfordern, müssen Sie ein Kontingent für die GPU-Typen, die Sie in den einzelnen Regionen erstellen möchten, sowie ein zusätzliches globales Kontingent für die Gesamtzahl der GPUs aller Typen in allen Zonen anfordern.

Wenn Ihr Projekt einen bestehenden Abrechnungsverlauf hat, wird es nach Ihrer Anfrage automatisch Kontingente erhalten.

Übersicht

Führen Sie die folgenden Schritte aus, um eine VM mit angehängten GPUs zu erstellen:

  1. Erstellen Sie die VM. Die zum Erstellen einer VM verwendete Methode hängt vom GPU-Modell ab.

  2. Damit die VM die GPU verwenden kann, müssen Sie den GPU-Treiber auf Ihrer VM installieren.

  3. Wenn Sie virtuelle NVIDIA® GRID-Workstations aktiviert haben, installieren Sie GRID®-Treiber für virtuelle Workstations.

VMs mit angehängten GPUs (A100-GPUs) erstellen

In diesem Abschnitt wird beschrieben, wie Sie VMs mit angehängten NVIDIA® A100-GPUs erstellen. Informationen zu anderen GPU-Typen finden Sie unter VMs mit angehängten GPUs erstellen (andere GPU-Typen).

Einschränkungen (A100)

  • a2-megagpu-16g-Maschinentypen werden unter Windows nicht unterstützt. Wählen Sie einen anderen Maschinentyp aus, wenn Sie Windows-Betriebssysteme verwenden. Eine Liste der Maschinentypen finden Sie unter NVIDIA® A100-GPUs.
  • Bei Windows-VMs, die A2-Maschinentypen verwenden, können Sie die angehängten lokalen SSDs nicht schnell formatieren. Um diese lokalen SSDs zu formatieren, müssen Sie ein vollständiges Format mit dem Laufwerkteil-Dienstprogramm verwenden und format fs=ntfs label=tmpfs angeben.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie unter Name einen Namen für Ihre Instanz an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

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

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

    1. Klicken Sie unter Maschinenfamilie auf GPU.
    2. Wählen Sie unter Serie die Option A2 aus.
    3. Wählen Sie unter Maschinentyp den gewünschten A2-Maschinentyp aus.

      Der Abschnitt "Maschinenkonfiguration".

    4. Maximieren Sie den Abschnitt CPU-Plattform und GPU.

      Der Abschnitt zur GPU-Konfiguration.

    5. Prüfen Sie unter CPU-Plattform und GPU den GPU-Typ und die Anzahl der GPUs.

  6. Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um Ihr Bootlaufwerk zu konfigurieren. Dadurch wird die Seite Konfiguration des Bootlaufwerks geöffnet.

  7. 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 ein Deep Learning VM-Image aus.
    2. Geben Sie eine Bootlaufwerkgröße von mindestens 40 GB an.
    3. Klicken Sie auf Speichern, um die Optionen für das Bootlaufwerk zu bestätigen.
  8. Konfigurieren Sie alle weiteren erforderlichen VM-Einstellungen. Sie können beispielsweise die Einstellungen für die Abrufbarkeit ändern, um Ihre VM als Instanz auf Abruf zu konfigurieren. Dadurch senken Sie die Kosten für die VM und die angehängten GPUs. Weitere Informationen finden Sie unter GPUs in Instanzen auf Abruf.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

Verwenden Sie zum Erstellen und Starten einer VM den Befehl gcloud compute instances create mit den folgenden Flags. VMs mit GPUs können nicht live migriert werden. Achten Sie darauf, das Flag --maintenance-policy TERMINATE festzulegen.

--preemptible ist ein optionaler Parameter, der die VM als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für Ihre Instanz und der angehängten GPUs. Weitere Informationen finden Sie unter GPUs auf Instanzen auf Abruf.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

Ersetzen Sie Folgendes:

  • VM_NAME: Der Name für die neue VM.
  • MACHINE_TYPE: der A2-Maschinentyp, den Sie für die VM ausgewählt haben.
  • ZONE: die Zone für die VM. Diese Zone muss A100-GPUs unterstützen.
  • 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-Image angeben.

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

API

Erstellen Sie in der API eine -Anfrage an die Methode instances.insert. VMs mit GPUs können keine Live-Migration ausführen. Setzen Sie den Parameter onHostMaintenance auf TERMINATE.

"preemptible": true ist ein optionaler Parameter, der die VM als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für Ihre VM und die angeschlossenen GPUs. Weitere Informationen finden Sie unter GPUs auf Instanzen auf Abruf.

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"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

Ersetzen Sie Folgendes:

  • VM_NAME: der Name der VM.
  • PROJECT_ID: Ihre Projekt-ID.
  • ZONE: die Zone für die VM. Diese Zone muss A100-GPUs unterstützen.
  • MACHINE_TYPE: ein A2-Maschinentyp, den Sie für die VM ausgewählt haben.
  • 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-Image angeben.

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

  • DISK_SIZE: die Größe Ihres Bootlaufwerks in GB.

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

Nächster Schritt: Installieren Sie den GPU-Treiber auf Ihrer VM, damit Ihr System das Gerät verwenden kann. Für A100-GPUs ist CUDA 11 erforderlich.

Beispiele (A100-GPUs)

In diesen Beispielen werden VMs mit angehängten NVIDIA® A100-GPUs mithilfe des gcloud-Befehlszeilentools erstellt. Alternativ können Sie zum Erstellen dieser VMs auch die Google Cloud Console oder die Compute Engine API verwenden.

Die folgenden Beispiele zeigen, wie VMs mit folgenden Images erstellt werden:

DLVM-Image

Die Verwendung von DLVM-Images ist der einfachste Weg, da die Images bereits die NVIDIA-Treiber und CUDA-Bibliotheken enthalten.

Diese Images bieten auch Leistungsoptimierungen.

Folgende DLVM-Images werden für NVIDIA® A100 unterstützt:

  • common-cu110: NVIDIA-Treiber und CUDA, vorinstalliert
  • tf-ent-1-15-cu110: NVIDIA-Treiber, CUDA, TensorFlow Enterprise 1.15.3. vorinstalliert
  • tf2-ent-2-1-cu110: NVIDIA-Treiber, CUDA, TensorFlow Enterprise 2.1.1, vorinstalliert
  • tf2-ent-2-3-cu110: NVIDIA-Treiber, CUDA, TensorFlow Enterprise 2.3.1, vorinstalliert
  • pytorch-1-6-cu110: NVIDIA-Treiber, CUDA, Pytorch 1.6

Weitere Informationen zu den verfügbaren DLVM-Images und den auf den Images installierten Paketen finden Sie in der Deep Learning VM-Dokumentation.

  1. Erstellen Sie eine VM mit dem tf2-ent-2-3-cu110-Image und dem Maschinentyp a2-highgpu-1g. In diesem Beispiel sind optionale Flags wie Größe und Bereich des Bootlaufwerks angegeben.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-c \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family tf2-ent-2-3-cu110 \
       --image-project deeplearning-platform-release \
       --boot-disk-size 200GB \
       --metadata "install-nvidia-driver=True,proxy-mode=project_editors" \
       --scopes https://www.googleapis.com/auth/cloud-platform
    

    Ersetzen Sie Folgendes:

    • VM_NAME: der Name Ihrer VM
    • PROJECT_ID: Ihre Projekt-ID
  2. Mit dem vorherigen Beispielbefehl wird auch ein AI Platform Notebook für die VM generiert. Rufen Sie in der Google Cloud Console die Seite AI Platform auf, um auf das Notebook zuzugreifen.

    Rufen Sie die Seite "AI Platform" auf

Öffentliches oder benutzerdefiniertes Image

Sie können VMs mit angehängten GPUs erstellen, die entweder ein öffentliches Image verwenden, das in Compute Engine verfügbar ist, oder ein benutzerdefiniertes Image.

Zum Erstellen einer VM mit dem neuesten, nicht verworfenen Image aus der CentOS 7-Image-Familie und dem Maschinentyp a2-highgpu-1g gehen Sie so vor:

  1. Erstellen Sie die VM. In diesem Beispiel werden auch optionale Flags wie Bootlaufwerktyp und Größe angegeben.

    gcloud compute instances create VM_NAME \
        --project PROJECT_ID \
        --zone us-central1-c \
        --machine-type a2-highgpu-1g \
        --maintenance-policy TERMINATE --restart-on-failure \
        --image-family centos-7 \
        --image-project centos-cloud \
        --boot-disk-size 200GB \
        --boot-disk-type pd-ssd
    

    Ersetzen Sie Folgendes:

    • VM_NAME: der Name Ihrer VM
    • PROJECT_ID: Ihre Projekt-ID
  2. Installieren Sie NVIDIA-Treiber und CUDA. Für NVIDIA® A100-GPUs ist CUDA Version 11 oder höher erforderlich.

COS

Sie können VMs mit angehängten GPUs erstellen, die COS-Images (Container-optimized) verwenden.

Führen Sie zum Erstellen einer VM mit dem Image cos-85-lts und dem Maschinentyp a2-highgpu-1g folgende Schritte von Ihrem lokalen Client aus:

  1. Erstellen Sie eine Konfigurationsdatei.

    mkdir /tmp/cloud-init.yaml
  2. Fügen Sie der Datei /tmp/cloud-init.yaml die Konfigurationsinformationen hinzu.

    Diese Informationen sind erforderlich, um die Container-optimized-VM einzurichten und NVIDIA-Treiber und CUDA beim Start der VM zu installieren.

    cat <<'EOF' > /tmp/cloud-init.yaml
    #cloud-config
    
    write_files:
      - path: /etc/systemd/system/cos-gpu-installer.service
        permissions: 0755
        owner: root
        content: |
          [Unit]
          Description=Run the GPU driver installer container
          Requires=network-online.target gcr-online.target
          After=network-online.target gcr-online.target
    
          [Service]
          User=root
          Type=oneshot
          RemainAfterExit=true
          Environment=INSTALL_DIR=/var/lib/nvidia
          ExecStartPre=/bin/mkdir -p ${INSTALL_DIR}
          ExecStartPre=/bin/mount --bind ${INSTALL_DIR} ${INSTALL_DIR}
          ExecStartPre=/bin/mount -o remount,exec ${INSTALL_DIR}
          ExecStart=/usr/bin/docker run --privileged \
                                        --net=host  \
                                        --pid=host \
                                        --volume ${INSTALL_DIR}:/usr/local/nvidia \
                                        --volume /dev:/dev \
                                        --volume /:/root \
                                        --env NVIDIA_DRIVER_VERSION=450.80.02 \
                                        gcr.io/cos-cloud/cos-gpu-installer:v20200701
          StandardOutput=journal+console
          StandardError=journal+console
    
    runcmd:
      - systemctl daemon-reload
      - systemctl enable cos-gpu-installer.service
      - systemctl start cos-gpu-installer.service
    
    EOF
    
  3. Erstellen Sie eine Container-optimized-VM mit der Image-Familie cos-85-lts und a2-highgpu-1g.

    Sie müssen die Konfigurationsdatei mit dem Flag -metadata-from-file user-data angeben.

    In diesem Beispiel wird auch die optionale Größe des Bootlaufwerks angegeben.

    gcloud compute instances create VM_NAME \
       --project PROJECT_ID \
       --zone us-central1-a \
       --machine-type a2-highgpu-1g \
       --maintenance-policy TERMINATE --restart-on-failure \
       --image-family cos-85-lts \
       --image-project cos-cloud \
       --boot-disk-size 200GB \
       --metadata-from-file user-data=/tmp/cloud-init.yaml
    

    Ersetzen Sie Folgendes:

    • VM_NAME: der Name Ihrer VM
    • PROJECT_ID: Ihre Projekt-ID

    Melden Sie sich nach dem Erstellen der VM bei der VM an und führen Sie den folgenden Befehl aus, um zu prüfen, ob der NVIDIA-Treiber installiert ist.

    /var/lib/nvidia/bin/nvidia-smi

    Die Installation des Treibers dauert ca. fünf Minuten.

GPUs mit mehreren Instanzen (A100)

Eine GPU mit mehreren Instanzen partitioniert eine einzelne NVIDIA-A100-GPU innerhalb derselben VM in bis zu sieben unabhängige GPU-Instanzen. Sie werden gleichzeitig ausgeführt, jeder verfügt über einen eigenen Arbeitsspeicher, Cache und eigene Streaming-Multiprozessoren. Mit dieser Konfiguration kann die A100-GPU eine garantierte Dienstqualität mit bis zu siebenmal höherer Leistung im Vergleich zu früheren GPU-Modellen bereitstellen.

Weitere Informationen zur Verwendung von GPUs mit mehreren Instanzen finden Sie im NVIDIA-Nutzerhandbuch für mehrere GPU-Instanzen.

Führen Sie folgende Schritte aus, um GPUs mit mehreren Instanzen zu erstellen:

  1. Erstellen Sie eine VM mit angehängten A100-GPUs.

  2. Aktivieren Sie NVIDIA-GPU-Treiber.

  3. Aktivieren Sie GPUs mit mehreren Instanzen und starten Sie die VM neu.

    sudo nvidia-smi -mig 1
    sudo reboot
    
  4. Prüfen Sie die verfügbaren GPU-Formen mit mehreren Instanzen.

    sudo nvidia-smi mig --list-gpu-instance-profiles
    

    Die Ausgabe sieht etwa so aus:

    +--------------------------------------------------------------------------+
    | GPU instance profiles:                                                   |
    | GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  |
    |                           Free/Total   GiB              CE    JPEG  OFA  |
    |==========================================================================|
    |   0  MIG 1g.5gb     19     7/7        4.75       No     14     0     0   |
    |                                                          1     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 2g.10gb    14     3/3        9.75       No     28     1     0   |
    |                                                          2     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 3g.20gb     9     2/2        19.62      No     42     2     0   |
    |                                                          3     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 4g.20gb     5     1/1        19.62      No     56     2     0   |
    |                                                          4     0     0   |
    +--------------------------------------------------------------------------+
    |   0  MIG 7g.40gb     0     1/1        39.50      No     98     5     0   |
    |                                                          7     1     1   |
    +--------------------------------------------------------------------------+
    
  5. Erstellen Sie die gewünschte Multi-Instance GPU (GI) und die zugehörigen Compute-Instanzen (CI). Sie können diese Instanzen erstellen, indem Sie entweder den vollständigen oder abgekürzten Profilnamen, die Profil-ID oder eine Kombination aus beiden angeben. Weitere Informationen finden Sie unter GPU-Instanzen erstellen.

    Im folgenden Beispiel werden zwei MIG 3g.20gb-GPU-Instanzen unter Einsatz einer Kombination aus dem gekürzten Profilnamen (3g.20gb) und der Profil-ID (9) erstellt.

    Weiter wird das Flag -C angegeben, das die zugehörigen Compute-Instanzen für das erforderliche Profil erstellt.

    sudo nvidia-smi mig -cgi 9,3g.20gb -C
    

    Die Ausgabe sieht etwa so aus:

    Successfully created GPU instance ID  2 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 3g.20gb (ID  2)
    Successfully created GPU instance ID  1 on GPU  0 using profile MIG 3g.20gb (ID  9)
    Successfully created compute instance ID  0 on GPU  0 GPU instance ID  1 using profile MIG 3g.20gb (ID  2)
    
  6. Prüfen Sie, ob die beiden Multi-Instanz-GPUs erstellt wurden:

    sudo nvidia-smi mig -lgi
    

    Die Ausgabe sieht etwa so aus:

    +----------------------------------------------------+
    | GPU instances:                                     |
    | GPU   Name          Profile  Instance   Placement  |
    |                       ID       ID       Start:Size |
    |====================================================|
    |   0  MIG 3g.20gb       9        1          0:4     |
    +----------------------------------------------------+
    |   0  MIG 3g.20gb       9        2          4:4     |
    +----------------------------------------------------+
    
  7. Prüfen Sie, ob die GIs und die entsprechenden CIs erstellt wurden.

    sudo nvidia-smi
    

    Die Ausgabe sieht etwa so aus:

    Tue May 18 18:32:22 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  A100-SXM4-40GB      Off  | 00000000:00:04.0 Off |                   On |
    | N/A   43C    P0    52W / 350W |     22MiB / 40537MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    |                  |      0MiB / 32767MiB |           |                       |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

VMs mit angehängten GPUs (andere GPU-Typen) erstellen

Sie können eine VM mit einer oder mehreren GPUs mit der Google Cloud Console, dem gcloud-Befehlszeilentool oder der Compute Engine API erstellen.

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

  • NVIDIA® T4: nvidia-tesla-t4
  • NVIDIA® T4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-t4-vws
  • NVIDIA® V100: nvidia-tesla-v100
  • NVIDIA® P100: nvidia-tesla-p100.
  • NVIDIA® P100 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p100-vws

  • NVIDIA® P4: nvidia-tesla-p4

  • NVIDIA® P4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p4-vws

  • NVIDIA® K80: nvidia-tesla-k80

Console

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    Zu „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie unter Name einen Namen für Ihre Instanz an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.

  4. Wählen Sie eine Region und eine Zone aus. Siehe dazu die Liste der verfügbaren Zonen mit GPUs.

  5. Führen Sie auf der Seite Maschinenkonfiguration die folgenden Schritte aus.

    1. Wählen Sie unter Serie die Option N1 aus.
    2. Wählen Sie unter Maschinentyp den gewünschten N1-Maschinentyp aus. Alternativ dazu können Sie auch entsprechende Einstellungen für einen benutzerdefinierten Maschinentyp festlegen.
    3. Maximieren Sie den Abschnitt CPU-Plattform und GPU.
    4. Klicken Sie auf GPU hinzufügen.

      Der Abschnitt &quot;Maschinenkonfiguration&quot;.

    5. Geben Sie den GPU-Typ und die Anzahl der GPUs an.
    6. Wenn Ihr GPU-Modell virtuelle Workstations unterstützt und Sie grafikintensive Arbeitslasten auf dieser VM ausführen möchten, wählen Sie Virtual Workstation (NVIDIA GRID) aktivieren aus.

      Informationen zu virtuellen NVIDIA® GRID-Workstations finden Sie unter NVIDIA® GRID®-GPUs für Grafikarbeitslasten.

      Der Abschnitt zur GPU-Konfiguration.

  6. Klicken Sie zur Auswahl des Betriebssystems im Abschnitt Bootlaufwerk auf Ändern. Dadurch wird die Seite Konfiguration des Bootlaufwerks geöffnet.

  7. 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 ein Deep Learning VM-Image aus.
    2. Geben Sie eine Bootlaufwerkgröße von mindestens 40 GB an.
    3. Klicken Sie auf Speichern, um die Optionen für das Bootlaufwerk zu bestätigen.
  8. Konfigurieren Sie alle weiteren erforderlichen Instanzeinstellungen. Sie können beispielsweise die Einstellungen für die Abrufbarkeit ä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.

  9. Klicken Sie auf Erstellen, um die VM zu erstellen und zu starten.

gcloud

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

--preemptible ist ein optionaler Parameter, der die VM als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für die VM und die angehängten GPUs. Weitere Informationen finden Sie unter GPUs auf Instanzen auf Abruf.

gcloud compute instances create VM_NAME \
    --machine-type MACHINE_TYPE \
    --zone ZONE \
    --accelerator type=ACCELERATOR_TYPE,count=ACCELERATOR_COUNT \
    [--image IMAGE | --image-family IMAGE_FAMILY] \
    --image-project IMAGE_PROJECT \
    --maintenance-policy TERMINATE --restart-on-failure \
    [--preemptible]

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.
  • 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-Image angeben.

  • IMAGE_PROJECT: das Image-Projekt von Compute Engine, zu dem die Image-Familie gehört. Wenn Sie ein benutzerdefiniertes Image oder ein Deep Learning VM-Image 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® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA® P4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

Beispiel

Sie können zum Beispiel mit folgendem gcloud-Befehl eine Ubuntu 16.04-VM mit einer NVIDIA 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 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.

"preemptible": true ist ein optionaler Parameter, der die VM als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für Ihre VM und die angeschlossenen GPUs. Weitere Informationen finden Sie unter GPUs auf Instanzen auf Abruf.

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.

Erstellen Sie in der API eine -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":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
}

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

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

  • DISK_SIZE: die Größe Ihres Bootlaufwerks in GB.

  • 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® T4: nvidia-tesla-t4
    • NVIDIA® T4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-t4-vws
    • NVIDIA® P4: nvidia-tesla-p4
    • NVIDIA® P4 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® P100: nvidia-tesla-p100
    • NVIDIA® P100 Virtual Workstation mit NVIDIA® GRID®: nvidia-tesla-p100-vws
    • NVIDIA® V100: nvidia-tesla-v100
    • NVIDIA® K80: nvidia-tesla-k80

Nächster Schritt: Führen Sie die folgenden Aufgaben aus, damit Ihr System die GPUs verwenden kann:

Nächste Schritte