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 auf 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. Welche Methode zum Erstellen einer VM verwendet wird, 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).

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, in der GPUs verfügbar sind. Weitere Informationen finden Sie in der 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 Bootlaufwerkkonfiguration 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 optionales Flag, das die VM als Instanz auf Abruf konfiguriert. Dadurch senken Sie die Kosten für Ihre VM und den 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 nicht live migriert werden. Achten Sie darauf, dass Sie den Parameter onHostMaintenance auf TERMINATE setzen.

"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 angehängten 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 mit dem gcloud-Befehlszeilentool erstellt. Sie können diese VMs aber auch mit der Google Cloud Console oder der Compute Engine API erstellen.

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.

Die folgenden 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 Image tf2-ent-2-3-cu110 und dem Maschinentyp a2-highgpu-1g. In diesem Beispiel werden optionale Flags wie Größe und Umfang 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. Der obige Beispielbefehl generiert auch ein AI Platform Notebook für die VM. Rufen Sie in der Google Cloud Console die Seite AI Platform auf, um auf das Notebook zuzugreifen.

    Zur Seite "AI Platform"

Ö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:

  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.

    Die Konfigurationsdatei müssen Sie mit dem Flag -metadata-from-file user-data bereitstellen.

    In diesem Beispiel wird auch die optionale Flag-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

    Es dauert ungefähr fünf Minuten, bis der Treiber installiert ist.

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 für mehrere 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 GPU mit mehreren Instanzen. Im folgenden Beispiel werden zwei MIG 3g.20gb-GPU-Instanzen anhand der Profil-ID für dieses Format erstellt (9).

    sudo nvidia-smi mig -i 0 --create-gpu-instance 9,9
    
  6. Prüfen Sie, ob die beiden GPUs mit mehreren Instanzen erstellt wurden, und rufen Sie die IDs ab:

    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. Aktivieren Sie mit Instance IDs die GPUs mit mehreren Instanzen für Compute-Arbeitslasten:

    sudo nvidia-smi mig -i 0 --create-compute-instance -gi 1,2
    
  8. Prüfen Sie, ob die GPU-Geräte für die Compute-Arbeitslasten bereit sind.

    sudo nvidia-smi
    

    Die Ausgabe sieht etwa so aus:

    Fri Oct 30 20:23:30 2020
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    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   39C    P0    53W / 400W |     22MiB / 40537MiB |     N/A      Default |
    |                               |                      |              Enabled |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | MIG devices:                                                                |
    +------------------+----------------------+-----------+-----------------------+
    | GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
    |      ID  ID  Dev |                      | SM     Unc| CE  ENC  DEC  OFA  JPG|
    |                  |                      |        ECC|                       |
    |==================+======================+===========+=======================|
    |  0    1   0   0  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    +------------------+----------------------+-----------+-----------------------+
    |  0    2   0   1  |     11MiB / 20096MiB | 42      0 |  3   0    2    0    0 |
    +------------------+----------------------+-----------+-----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

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

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 im Abschnitt Bootlaufwerk auf Ändern, um Ihr Betriebssystem auszuwählen. Dadurch wird die Seite Bootlaufwerkkonfiguration 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 optionales Flag, das 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: Die Anzahl der GPUs, die Sie Ihrer VM hinzufügen 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 angehängten 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: Die Anzahl der GPUs, die Sie Ihrer VM hinzufügen 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