GPUs hinzufügen oder entfernen

Google Compute Engine stellt Grafikprozessoren (GPUs) zur Verfügung, 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.

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

Vorbereitung

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 dort installierten Paketen finden Sie in der Deep Learning VM-Dokumentation.

Sie können jedes öffentliche Image oder ein benutzerdefiniertes Image verwenden. Manche Images erfordern jedoch unter Umständen einen speziellen Treiber oder einen Installationsvorgang, der in dieser Anleitung nicht beschrieben wird. Sie müssen ermitteln, welche Treiber für Ihre Images geeignet sind.

Hinweise zum Installieren 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.

Erstellen Sie mithilfe der Google Cloud Platform Console, des gcloud-Befehlszeilentools oder der API eine Instanz mit einer oder mehreren GPUs.

Console

  1. Gehen Sie zur Seite "VM-Instanzen".

    Seite "VM-Instanzen" öffnen

  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 Maschinentyp den Maschinentyp aus, den Sie für diese Instanz verwenden möchten. Alternativ dazu können Sie später auch Einstellungen für einen benutzerdefinierten Maschinentyp festlegen.
  5. Klicken Sie im Abschnitt Maschinentyp auf Anpassen. Hier finden Sie erweiterte Maschinentypoptionen und verfügbare GPUs.
  6. Klicken Sie auf GPUs, um eine 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. Optional können Sie ein Startskript einfügen, durch das beim Hochfahren der Instanz der GPU-Treiber installiert wird. Geben Sie im Abschnitt Automatisierung unter Startskript den Inhalt Ihres Startskripts ein. Beispielskripts hierzu finden Sie unter GPU-Treiber installieren.
  13. 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.
  14. Klicken Sie unten auf der Seite auf Erstellen, um die Instanz zu erstellen.

gcloud

Mit dem Befehl regions describe prüfen Sie, ob Ihnen ein ausreichendes GPU-Kontingent in der Region zur Verfügung steht, in der Sie Instanzen mit GPUs erstellen möchten.

gcloud compute regions describe [REGION]

Dabei ist [REGION] die Region, in der Sie das GPU-Kontingent prüfen möchten.

Starten einer Instanz mit dem neuesten Image aus einer Imagefamilie:

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 \
    --metadata startup-script='[STARTUP_SCRIPT]' \
    [--preemptible]

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der neuen Instanz.
  • [MACHINE_TYPE] ist der Maschinentyp, den Sie für die Instanz ausgewählt haben. Unter GPUs in Compute Engine finden Sie, welche Maschinentypen basierend auf der von Ihnen gewünschten Anzahl an GPUs verfügbar sind.
  • [ZONE] ist die Zone dieser Instanz.
  • [IMAGE_FAMILY] ist eine der verfügbaren Image-Familien.
  • [ACCELERATOR_COUNT] ist 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] ist das GPU-Modell, das Sie verwenden möchten. Verwenden Sie einen der folgenden Werte:

    • NVIDIA® Tesla® T4: nvidia-tesla-t4 (Beta)
    • NVIDIA® Tesla® T4 Virtuelle Workstation mit NVIDIA® GRID®: nvidia-tesla-t4-vws (Beta)
    • NVIDIA® Tesla® P4: nvidia-tesla-p4
    • NVIDIA® Tesla® P4 Virtuelle Workstation mit NVIDIA® GRID®: nvidia-tesla-p4-vws
    • NVIDIA® Tesla® P100: nvidia-tesla-p100
    • NVIDIA® Tesla® P100 Virtuelle 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.

  • [IMAGE_PROJECT] ist das Image-Projekt, zu dem die Image-Familie gehört.

  • [STARTUP_SCRIPT] ist ein optionales Startskript, mit dem Sie den GPU-Treiber installieren können, während die Instanz hochfährt. Weitere Beispiele hierzu finden Sie unter GPU-Treiber installieren.

  • --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 beispielsweise den folgenden gcloud-Befehl verwenden, um eine Ubuntu 16.04-Instanz mit einer NVIDIA® Tesla® K80-GPU und 2 vCPUs in der Zone us-east1-d zu starten. Die Metadaten des startup-script weisen die Instanz an, das CUDA-Toolkit mit der empfohlenen Treiberversion zu installieren.

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 \
    --metadata startup-script='#!/bin/bash
    echo "Checking for CUDA and installing."
    # Check for CUDA and try to install.
    if ! dpkg-query -W cuda-10-0; then
      curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      dpkg -i ./cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
      apt-get update
      apt-get install cuda-10-0 -y
    fi'

Dieser Befehl startet zum Beispiel die Instanz, aber es wird einige Minuten dauern, bis CUDA und der Treiber fertig installiert sind.

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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes

Dabei gilt:

  • [PROJECT_ID] ist Ihre Projekt-ID.
  • [ZONE] ist die Zone, deren verfügbare GPU-Typen Sie auflisten möchten.

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

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances?key={YOUR_API_KEY}
{
  "machineType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/machineTypes/n1-highmem-2",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "[DISK_SIZE]",
        "sourceImage": "https://www.googleapis.com/compute/v1/projects/[IMAGE_PROJECT]/global/images/family/[IMAGE_FAMILY]"
      },
      "boot": true
    }
  ],
  "name": "[INSTANCE_NAME]",
  "networkInterfaces":
  [
    {
      "network": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK]"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": [ACCELERATOR_COUNT],
      "acceleratorType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes/[ACCELERATOR_TYPE]"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true,
    ["preemptible": true]
  },
  "metadata":
  {
    "items":
    [
      {
        "key": "startup-script",
        "value": "[STARTUP_SCRIPT]"
      }
    ]
  }
}

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der Instanz.
  • [PROJECT_ID] ist Ihre Projekt-ID.
  • [ZONE] ist die Zone dieser Instanz.
  • [MACHINE_TYPE] ist 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_PROJECT] ist das Image-Projekt, zu dem das Image gehört.
  • [IMAGE_FAMILY] ist das Image des Bootlaufwerks für Ihre Instanz. Geben Sie eine Image-Familie aus der Liste der verfügbaren öffentlichen Images an.
  • [DISK_SIZE] ist die Größe Ihres Bootlaufwerks in GB.
  • [NETWORK] ist das VPC-Netzwerk, das Sie für diese Instanz verwenden möchten. Geben Sie default an, um Ihr Standardnetzwerk auszuwählen.
  • [ACCELERATOR_COUNT] ist 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] ist das GPU-Modell, das Sie verwenden möchten. Unter GPUs in Compute Engine finden Sie eine Liste der verfügbaren GPU-Modelle.
  • [STARTUP_SCRIPT] ist ein optionales Startskript, mit dem Sie den GPU-Treiber installieren können, während die Instanz hochfährt. Weitere Beispiele hierzu finden Sie unter GPU-Treiber installieren.
  • "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.

Wenn Sie ein Startskript verwendet haben, um den GPU-Gerätetreiber automatisch zu installieren, prüfen Sie, ob der GPU-Treiber korrekt installiert wurde.

Wenn Sie kein Startskript zum Installieren des GPU-Treibers während der Erstellung der Instanz verwenden, dann installieren Sie den GPU-Treiber manuell so auf Ihrer Instanz, dass 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, Sie müssen dazu 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. Vom Bootlaufwerk-Image, mit dem Sie diese Instanz erstellt haben, hängt ab, 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.

Mithilfe der Google Cloud Platform Console oder der API können Sie einer Instanz GPUs hinzufügen oder daraus entfernen.

Konsole

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 Maschinentyp auf Anpassen. Hier finden Sie erweiterte Maschinentypoptionen und verfügbare GPUs.

  8. Klicken Sie auf GPUs, um eine 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://www.googleapis.com/compute/v1/projects/compute/zones/[ZONE]/instances/[INSTANCE_NAME]/stop
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz, der Sie GPUs hinzufügen möchten.
    • [ZONE] ist 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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes
    

    Dabei gilt:

    • [PROJECT_ID] ist Ihre Projekt-ID.
    • [ZONE] ist 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://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMachineResources
    
    {
     "guestAccelerators": [
      {
        "acceleratorCount": [ACCELERATOR_COUNT],
        "acceleratorType": "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes/[ACCELERATOR_TYPE]"
      }
     ]
    }
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz.
    • [PROJECT_ID] ist Ihre Projekt-ID.
    • [ZONE] ist die Zone dieser Instanz.
    • [ACCELERATOR_COUNT] ist die Anzahl der GPUs, die Sie für Ihre Instanz wünschen. Unter GPUs in Compute Engine finden Sie eine Liste der GPU-Limits, basierend auf dem Maschinentyp Ihrer Instanz.
    • [ACCELERATOR_TYPE] ist das GPU-Modell, das Sie verwenden möchten. Unter GPUs in Compute Engine finden Sie eine Liste der verfügbaren GPU-Modelle.
  5. Erstellen Sie einen POST-Befehl, um die Zeitplanoptionen für die Instanz festzulegen. Wenn Sie GPUs einer Instanz hinzufügen, müssen Sie "onHostMaintenance": "TERMINATE" angeben. Wenn Sie GPUs aus einer Instanz entfernen, können Sie optional "onHostMaintenance": "MIGRATE" angeben.

    POST https://www.googleapis.com/compute/v1/projects/compute/zones/[ZONE]/instances/[INSTANCE_NAME]/setScheduling
    
    {
     "onHostMaintenance": "[MAINTENANCE_TYPE]",
     "automaticRestart": true
    }
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz, der Sie GPUs hinzufügen möchten.
    • [ZONE] ist die Zone, in der sich die Instanz befindet.
    • [MAINTENANCE_TYPE] ist die Aktion, die Ihre Instanz ausführen soll, wenn eine Hostwartung erforderlich ist. Geben Sie TERMINATE an, wenn Sie Ihrer Instanz GPUs hinzufügen. Alternativ können Sie auch "onHostMaintenance": "MIGRATE" angeben, wenn Sie alle GPUs aus der Instanz entfernt haben und wenn Sie möchten, dass die Instanz bei Ereignissen der Hostwartung die Migration fortsetzt.
  6. Starten Sie die Instanz:

    POST https://www.googleapis.com/compute/v1/projects/compute/zones/[ZONE]/instances/[INSTANCE_NAME]/start
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz, der Sie GPUs hinzufügen möchten.
    • [ZONE] ist 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.

Gruppen von GPU-Instanzen mit Instanzvorlagen erstellen

Mit Instanzvorlagen können Sie verwaltete Instanzgruppen erstellen und dabei jeder Instanz GPUs hinzufügen. Verwaltete Instanzgruppen verwenden die Vorlage, um mehrere identische Instanzen zu erstellen. Sie können die Anzahl der Instanzen in der Gruppe entsprechend Ihrer Arbeitslast skalieren.

Schritte zum Erstellen einer Instanzvorlage finden Sie unter Instanzvorlagen erstellen.

Wenn Sie die Instanzvorlage mit der Console (EN) erstellen, passen Sie den Maschinentyp an und wählen Sie den Typ sowie die Anzahl der GPUs aus, die Sie der Instanzvorlage hinzufügen möchten.

Wenn Sie das gcloud-Befehlszeilentool verwenden, nutzen Sie auch die Flags --accelerators und --maintenance-policy TERMINATE. Sie können dabei optional das Flag --metadata startup-script und ein Startskript angeben, damit der GPU-Treiber beim Hochfahren der Instanz installiert wird. Beispielskripts für GPU-Instanzen finden Sie unter Installieren von GPU-Treibern.

Im folgenden Beispiel wird eine Instanzvorlage mit 2 vCPUs, einem Bootlaufwerk mit 250 GB und Ubuntu 16.04, einer NVIDIA® Tesla® K80-GPU und einem Startskript erstellt. Durch das Startskript wird das CUDA-Toolkit mit der empfohlenen Treiberversion installiert.

gcloud beta compute instance-templates create gpu-template \
    --machine-type n1-standard-2 \
    --boot-disk-size 250GB \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure \
    --metadata startup-script='#!/bin/bash
    echo "Checking for CUDA and installing."
    # Check for CUDA and try to install.
    if ! dpkg-query -W cuda-10-0; then
      curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      dpkg -i ./cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      apt-get update
      apt-get install cuda-10-0 -y
    fi'

Verwenden Sie die neue Vorlage, um eine Instanzgruppe zu erstellen. Jedes Mal, wenn Sie der Gruppe eine Instanz hinzufügen, wird die Instanz mit den Einstellungen in der Instanzvorlage hochgefahren.

Wenn Sie eine regional verwaltete Instanzgruppe erstellen, müssen Sie Zonen auswählen, die das gewünschte GPU-Modell unterstützen. Eine Liste der GPU-Modelle und verfügbaren Zonen finden Sie unter GPUs in Compute Engine. Im folgenden Beispiel wird eine regional verwaltete Instanzgruppe über zwei Zonen erstellt, die das nvidia-tesla-k80-Modell unterstützen.

gcloud beta compute instance-groups managed create example-rmig \
    --template gpu-template --base-instance-name example-instances \
    --size 30 --zones us-east1-c,us-east1-d

Hinweis: Verwenden Sie bei Auswahl bestimmter Zonen die Komponente gcloud beta, da sich die Funktion zur Zonenauswahl derzeit in der Betaphase befindet.

Weitere Informationen zum Verwalten und Skalieren von Instanzgruppen finden Sie unter Verwaltete Instanzgruppen erstellen.

GPU-Treiber installieren

Nachdem Sie eine Instanz mit einer oder mehreren GPUs erstellt haben, benötigt Ihr System Gerätetreiber, damit Ihre Anwendungen auf das Gerät zugreifen können. Diese Übersicht erläutert die Möglichkeiten zur Installation von NVIDIA-eigenen Treibern für Instanzen mit öffentlichen Images.

Zum Installieren von GPU-Treibern können Sie eine der folgenden Optionen wählen:

GPU-Treiber mithilfe von Skripts installieren

Für jede CUDA-Version ist mindestens eine GPU-Treiberversion oder eine neuere Version erforderlich. Informationen zum Überprüfen des für Ihre CUDA-Version erforderlichen Mindesttreibers finden Sie unter CUDA Toolkit und kompatible Treiberversionen.

NVIDIA-GPUs, die auf Google Compute Engine ausgeführt werden, müssen die folgenden Treiberversionen verwenden:

  • Linux-Instanzen:

    • NVIDIA-Treiber 410.79 oder höher
  • Windows Server-Instanzen:

    • NVIDIA-Treiber 411.98 oder höher

Bei den meisten Treiberinstallationen können Sie diese Treiber abrufen, indem Sie das NVIDIA CUDA-Toolkit installieren.

Bei einigen Images können Sie Skripts verwenden, um den Installationsvorgang des Treibers zu vereinfachen. Sie können diese Skripts entweder auf Ihren Instanzen als Startskripts festlegen oder auf Ihre Instanzen kopieren und als Nutzer mit sudo-Rechten über das Terminal ausführen.

Sie müssen das Skript so vorbereiten, dass es mit dem ausgewählten Bootlaufwerk-Image zusammenarbeitet. Wenn Sie ein benutzerdefiniertes Bootlaufwerk-Image für Ihre Instanzen importieren, dann müssen Sie das Startskript eventuell anpassen, damit es ordnungsgemäß mit diesem benutzerdefinierten Image zusammenarbeitet.

Bei Windows Server-Instanzen und SLES 12-Instanzen, bei denen Sie den Installationsvorgang des Treibers nicht automatisieren können, installieren Sie den Treiber manuell.

Die folgenden Beispiele sind Startskripts, die CUDA und die zugehörigen Treiber für NVIDIA®-GPUs auf öffentlichen Images installieren. Wenn die von Ihnen verwendete Software eine bestimmte Version von CUDA erfordert, ändern Sie das Skript so, dass die von Ihnen benötigte Version von CUDA heruntergeladen wird.

Informationen zum Support von CUDA und zu Schritten zum Ändern Ihrer CUDA-Installation finden Sie in der CUDA Toolkit-Dokumentation (in englischer Sprache).

Sie können die Logs oder die serielle Konsole überprüfen, um zu bestätigen, ob ein Startskript abgeschlossen ist.

CentOS

Diese Beispielskripts prüfen, ob eine CUDA-Installation vorhanden ist, und installieren dann das vollständige CUDA 10-Paket und den zugehörigen proprietären Treiber.

CentOS 7 – CUDA 10:

#!/bin/bash
# Install kernel headers and development packages
echo "Installing kernel headers and development packages."
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-10-0; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel7-10.0.130-1.x86_64.rpm
  yum clean all
  rm -rf /var/cache/yum
  # Install Extra Packages for Enterprise Linux (EPEL) for dependencies
  yum install epel-release -y
  yum update -y
  yum install cuda-10-0 -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-10-0; then
  yum install cuda-10-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Instanzen mit CentOS 7-Images müssen unter Umständen neu gestartet werden, nachdem die Treiber und die CUDA-Pakete durch das Skript installiert wurden. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

CentOS 6 – CUDA 10:

#!/bin/bash
# Install kernel headers and development packages
echo "Installing kernel headers and development packages."
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-10-0; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-10.0.130-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel6-10.0.130-1.x86_64.rpm
  yum clean all
  # Install Extra Packages for Enterprise Linux (EPEL) for dependencies
  yum install epel-release -y
  yum update -y
  yum install cuda-10-0 -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-10-0; then
  yum install cuda-10-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Instanzen mit CentOS 6-Images müssen unter Umständen neu gestartet werden, nachdem die Treiber und die CUDA-Pakete durch das Skript installiert wurden. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

RHEL

Diese Beispielskripts prüfen, ob eine CUDA-Installation vorhanden ist, und installieren dann das vollständige CUDA 10-Paket und den zugehörigen proprietären Treiber.

RHEL 7 – CUDA 10:

#!/bin/bash
# Install kernel headers and development packages
echo "Installing kernel headers and development packages."
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-10-0; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel7-10.0.130-1.x86_64.rpm
  yum clean all
  rm -rf /var/cache/yum
  # Install Extra Packages for Enterprise Linux (EPEL) for dependencies
  yum install epel-release -y
  yum update -y
  yum install cuda-10-0 -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-10-0; then
  yum install cuda-10-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Instanzen mit RHEL 7-Images müssen möglicherweise neu gestartet werden, nachdem die Treiber und die CUDA-Pakete durch das Skript installiert wurden. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

RHEL 6 – CUDA 10:

#!/bin/bash
# Install kernel headers and development packages
echo "Installing kernel headers and development packages."
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-10-0; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-10.0.130-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel6-10.0.130-1.x86_64.rpm
  yum clean all
  # Install Extra Packages for Enterprise Linux (EPEL) for dependencies
  yum install epel-release -y
  yum update -y
  yum install cuda-10-0 -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-10-0; then
  yum install cuda-10-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Instanzen mit RHEL 6-Images müssen unter Umständen neu gestartet werden, nachdem die Treiber und die CUDA-Pakete durch das Skript installiert wurden. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

Sie können über die serielle Konsole überprüfen, ob das Skript fertiggestellt ist.

SLES

SLES 15 – CUDA 10:

Dieses Beispielskript prüft, ob ein Installationsprogramm für CUDA existiert, und installiert dann das komplette CUDA 10-Paket und den zugehörigen proprietären Treiber.

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-10-0; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/cuda-repo-sles15-10.0.130-1.x86_64.rpm
  rpm -i --force ./cuda-repo-sles15-10.0.130-1.x86_64.rpm
  zypper --gpg-auto-import-keys refresh
  zypper install -ny cuda-10-0
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-10-0; then
  zypper install -ny cuda-10-0
fi
# Enable persistence mode
nvidia-smi -pm 1

SLES 12 Service Pack 3 - CUDA 9.1:

Dieses Beispielskript prüft, ob ein Installationsprogramm für CUDA existiert, und installiert dann das komplette CUDA 9.1-Paket und den zugehörigen proprietären Treiber.

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda-9-1; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/sles123/x86_64/cuda-repo-sles123-9.1.85-1.x86_64.rpm
  rpm -i --force ./cuda-repo-sles123-9.1.85-1.x86_64.rpm
  zypper --gpg-auto-import-keys refresh
  zypper install -ny cuda-9-1
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda-9-1; then
  zypper install -ny cuda-9-1
fi
# Enable persistence mode
nvidia-smi -pm 1

SLES: 12

In anderen SLES 12-Instanzen installieren Sie den Treiber manuell.

Ubuntu

Ubuntu 18.04 – Cuda 10:

Dieses Beispielskript prüft, ob ein Installationsprogramm für CUDA existiert, und installiert dann das komplette CUDA 10-Paket und den zugehörigen proprietären Treiber.

 #!/bin/bash
 echo "Checking for CUDA and installing."
 # Check for CUDA and try to install.
 if ! dpkg-query -W cuda-10-0; then
   curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
   dpkg -i ./cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
   apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
   apt-get update
   apt-get install cuda-10-0 -y
 fi
# Enable persistence mode
nvidia-smi -pm 1

Ubuntu 17.04 und 17.10 – CUDA 9:

Dieses Beispielskript prüft, ob ein Installationsprogramm für CUDA existiert, und installiert dann das komplette CUDA 9-Paket und den zugehörigen proprietären Treiber.

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! dpkg-query -W cuda-9-0; then
  # The 17.04 installer works with 17.10.
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
  dpkg -i ./cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
  apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
  apt-get update
  apt-get install cuda-9-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Ubuntu 16.04 LTS – CUDA 10:

Dieses Beispielskript prüft, ob ein Installationsprogramm für CUDA existiert, und installiert dann das komplette CUDA 10-Paket und den zugehörigen proprietären Treiber.

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! dpkg-query -W cuda-10-0; then
  # The 16.04 installer works with 16.10.
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
  dpkg -i ./cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
  apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
  apt-get update
  apt-get install cuda-10-0 -y
fi
# Enable persistence mode
nvidia-smi -pm 1

Windows Server

In der Windows Server-Instanz müssen Sie den Treiber manuell installieren.

Nachdem Ihr Skript beendet ist, können Sie verifizieren, ob der GPU-Treiber installiert worden ist.

GPU-Treiber manuell installieren

Wenn Sie kein Skript zum Installieren des Treibers für Ihre GPUs verwenden können, dann können Sie den Treiber selbst manuell installieren. Sie sind selbst für die Auswahl des Installationsprogramms und der Treiberversion verantwortlich, die sich am besten für Ihre Anwendung eignen. Wenden Sie diese Installationsmethode an, wenn Sie einen speziellen Treiber benötigen oder den Treiber auf einem benutzerdefinierten Image oder einem öffentlichen Image installieren müssen, das nicht mit einem der Installationsskripts zusammenarbeitet.

Sie können diese Methode anwenden, um Treiber in Instanzen mit den gängigsten öffentlichen Images manuell zu installieren. Für benutzerdefinierte Images müssen Sie eventuell die Methode modifizieren, damit sie in Ihrer individuellen Umgebung funktioniert.

CentOS

  1. Stellen Sie eine Verbindung zu der Instanz her, auf der Sie den Treiber installieren möchten.

  2. Installieren Sie Kernelheader und Entwicklungspakete.

    yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
    
  3. Wählen Sie ein Treiber-Repository aus und fügen Sie es Ihrer Instanz hinzu. Verwenden Sie beispielsweise curl, um das CUDA-Toolkit herunterzuladen. Fügen Sie das Repository außerdem mit dem Befehl rpm Ihrem System hinzu:

    • CentOS 7

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel7-10.0.130-1.x86_64.rpm
      
    • CentOS 6

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-10.0.130-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel6-10.0.130-1.x86_64.rpm
      
  4. Installieren Sie das Repository epel-release. Dieses Repository enthält die DKMS-Pakete, die zum Installieren der NVIDIA-Treiber auf CentOS erforderlich sind.

    $ sudo yum install epel-release
    
  5. Leeren Sie den Yum-Cache:

    $ sudo yum clean all
    
  6. Installieren Sie CUDA 10, das auch den NVIDIA-Treiber enthält.

    $ sudo yum install cuda-10-0
    
  7. Bei Instanzen mit CentOS-Images müssen Sie die Instanz unter Umständen neu starten, nachdem Sie die Treiber und die CUDA-Pakete installiert haben. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
    driver. Make sure that the latest NVIDIA driver is installed and
    running.
    
  8. Aktivieren Sie den Persistenzmodus.

    $ sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:00:04.0.
    Enabled persistence mode for GPU 00000000:00:05.0.
    All done.
    

RHEL

  1. Stellen Sie eine Verbindung zu der Instanz her, auf der Sie den Treiber installieren möchten.

  2. Installieren Sie Kernelheader und Entwicklungspakete.

    yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
    
  3. Wählen Sie ein Treiber-Repository aus und fügen Sie es Ihrer Instanz hinzu. Verwenden Sie beispielsweise curl, um das CUDA-Toolkit herunterzuladen. Fügen Sie das Repository außerdem mit dem Befehl rpm Ihrem System hinzu:

    • RHEL 7

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel7-10.0.130-1.x86_64.rpm
      
    • RHEL 6

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-10.0.130-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel6-10.0.130-1.x86_64.rpm
      
  4. Installieren Sie das Repository epel-release. Dieses Repository enthält die DKMS-Pakete, die erforderlich sind, um die NVIDIA-Treiber zu installieren. Bei RHEL müssen Sie das .rpm für dieses Repository bei fedoraproject.org herunterladen und in Ihrem System einfügen.

    • RHEL 7

      $ curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      
      $ sudo rpm -i epel-release-latest-7.noarch.rpm
      
    • RHEL 6

      $ curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
      
      $ sudo rpm -i epel-release-latest-6.noarch.rpm
      
  5. Leeren Sie den Yum-Cache:

    $ sudo yum clean all
    
  6. Installieren Sie CUDA 10, das auch den NVIDIA-Treiber enthält.

    $ sudo yum install cuda-10-0
    
  7. Bei Instanzen mit RHEL-Images müssen Sie die Instanz unter Umständen neu starten, nachdem Sie die Treiber und die CUDA-Pakete installiert haben. Starten Sie die Instanz neu, wenn das Skript beendet wurde und der Befehl nvidia-smi den folgenden Fehler zurückgibt:

    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
    driver. Make sure that the latest NVIDIA driver is installed and
    running.
    
  8. Aktivieren Sie den Persistenzmodus.

    $ sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:00:04.0.
    Enabled persistence mode for GPU 00000000:00:05.0.
    All done.
    

SLES

  1. Stellen Sie eine Verbindung zu der Instanz her, auf der Sie den Treiber installieren möchten.

  2. Wählen Sie ein Treiber-Repository aus und fügen Sie es Ihrer Instanz hinzu. Verwenden Sie beispielsweise curl, um das CUDA-Toolkit herunterzuladen. Fügen Sie das Repository außerdem mit dem Befehl rpm Ihrem System hinzu:

    • SLES 15

      $ curl -O https://developer.download.nvidia.com/compute/cuda/repos/sles15/x86_64/cuda-repo-sles15-10.0.130-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-sles15-10.0.130-1.x86_64.rpm
      
    • SLES 12 mit Service Pack 3

      $ curl -O https://developer.download.nvidia.com/compute/cuda/repos/sles123/x86_64/cuda-repo-sles123-9.1.85-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-sles123-9.1.85-1.x86_64.rpm
      
    • SLES 12 mit Service Pack 2

      $ curl -O https://developer.download.nvidia.com/compute/cuda/repos/sles122/x86_64/cuda-repo-sles122-9.0.176-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-sles122-9.0.176-1.x86_64.rpm
      
  3. Aktualisieren Sie Zypper:

    $ sudo zypper refresh
    
  4. Installieren Sie CUDA, das auch den NVIDIA-Treiber enthält.

    $ zypper install cuda
    
  5. Aktivieren Sie den Persistenzmodus.

    $ sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:00:04.0.
    Enabled persistence mode for GPU 00000000:00:05.0.
    All done.
    

Ubuntu

  1. Stellen Sie eine Verbindung zu der Instanz her, auf der Sie den Treiber installieren möchten.

  2. Wählen Sie ein Treiber-Repository aus und fügen Sie es Ihrer Instanz hinzu. Verwenden Sie beispielsweise curl, um das CUDA-Toolkit herunterzuladen. Fügen Sie das Repository außerdem mit dem Befehl dpkg Ihrem System hinzu: Verwenden Sie anschließend den Befehl apt-key, um den Download zu authentifizieren:

    • Ubuntu 18.04

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
      
      $ sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
      $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
      
    • Ubuntu 17.04 und 17.10

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
      
      $ sudo dpkg -i cuda-repo-ubuntu1704_9.0.176-1_amd64.deb
      $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub
      
    • Ubuntu 16.04 und 16.10 LTS

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      
      $ sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
      $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
      
  3. Aktualisieren Sie die Liste der Pakete:

    $ sudo apt-get update
    
  4. Installieren Sie CUDA, das auch den NVIDIA-Treiber enthält.

    • Ubuntu 16.04, 16.10 und 18.04

      $ sudo apt-get install cuda-10-0
      
    • Ubuntu 17.04 und 17.10

      $ sudo apt-get install cuda-9-0
      
  5. Aktivieren Sie den Persistenzmodus.

    $ sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:00:04.0.
    Enabled persistence mode for GPU 00000000:00:05.0.
    All done.
    

Windows Server

  1. Stellen Sie eine Verbindung zu der Instanz her, auf der Sie den Treiber installieren möchten.

  2. Laden Sie eine .exe-Installationsdatei auf Ihre Instanz herunter, die den R384-Branch enthält: den Treiber NVIDIA 386.07 oder eine neuere Version. Für die meisten Windows Server-Instanzen können Sie eine der folgenden Optionen verwenden:

    In Windows Server 2016 können Sie beispielsweise ein PowerShell-Terminal als Administrator öffnen und mit dem Befehl wget das benötigte Treiberinstallationsprogramm herunterladen.

    PS C:\> wget https://developer.nvidia.com/compute/cuda/10.0/Prod/network_installers/cuda_10.0.130_win10_network -o cuda_10.0.130_win10_network.exe
  3. Führen Sie das .exe-Installationsprogramm aus. Sie können zum Beispiel ein PowerShell-Terminal als Administrator öffnen und den folgenden Befehl ausführen.

    PS C:\> .\\cuda_10.0.130_win10_network.exe
    

Überprüfen Sie nach der Ausführung des Installationsprogramms, ob der GPU-Treiber installiert ist.

Installieren des GPU-Treibers bestätigen

Nachdem die Installation des Treibers abgeschlossen ist, verifizieren Sie, ob der Treiber ordnungsgemäß installiert und initialisiert worden ist.

Linux

Stellen Sie eine Verbindung zur Linux-Instanz her und prüfen Sie mit dem Befehl nvidia-smi, ob der Treiber korrekt ausgeführt wird.

$ nvidia-smi

Wed Jan  2 19:51:51 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79       Driver Version: 410.79       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   42C    P8     7W /  75W |     62MiB /  7611MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

Windows Server

Stellen Sie eine Verbindung zur Windows Server-Instanz her und prüfen Sie mit dem Tool nvidia-smi.exe, ob der Treiber korrekt ausgeführt wird.

PS C:\> & 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe'

Fri Jan 04 16:47:42 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 411.31                 Driver Version: 411.31                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P4            TCC  | 00000000:00:04.0 Off |                    0 |
| N/A   31C    P8     6W /  75W |      0MiB /  7611MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

Wenn der Treiber nicht funktioniert und Sie zum Installieren des Treibers ein Skript verwendet haben, prüfen Sie die Startskript-Logs, um sicherzustellen, dass das Skript beendet wurde und nicht während der Installation fehlgeschlagen ist.

GRID®-Treiber für virtuelle Workstations installieren

Eine vollständige Liste der NVIDIA-Treiber, die Sie in Compute Engine verwenden können, finden Sie in der Dokumentation zum Cloud Storage-Bucket für NVIDIA-Treiber.

Linux

  1. Laden Sie den GRID-Treiber mit dem folgenden Befehl herunter:

    curl -O \  https://storage.googleapis.com/nvidia-drivers-us-public/GRID/GRID7.1/NVIDIA-Linux-x86_64-410.92-grid.run
    
  2. Starten Sie das Installationsprogramm mit dem folgenden Befehl:

    sudo bash NVIDIA-Linux-x86_64-410.92-grid.run
    
  3. Wählen Sie während der Installation die folgenden Optionen aus:

    • Wenn Sie aufgefordert werden, 32-Bit-Binärdateien zu installieren, wählen Sie Ja aus.
    • Wenn Sie aufgefordert werden, die Datei x.org zu ändern, wählen Sie Nein aus.

Windows Server

  1. Laden Sie je nach Windows Server-Version einen der folgenden NVIDIA GRID-Treiber herunter:

  2. Führen Sie das Installationsprogramm aus und entscheiden Sie sich für die Express-Installation.

  3. Starten Sie die VM nach Abschluss der Installation neu. Sie werden dann von Ihrer Sitzung getrennt.

  4. Stellen Sie mithilfe von RDP oder einem PCoIP-Client eine neue Verbindung zur Instanz her.

Prüfen, ob der GRID-Treiber installiert wurde

Linux

Führen Sie folgende Befehle aus:

sudo nvidia-smi --persistence-mode=1
nvidia-smi

Die Ausgabe sieht dann ungefähr so aus:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.92                Driver Version: 410.92                     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  On   | 00000000:00:04.0 Off |                    0 |
| N/A   34C    P0    26W / 250W |      0MiB / 16276MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

Windows Server

  1. Stellen Sie über RDP oder einen PCoIP-Client eine Verbindung zu Ihrer Windows-Instanz her.

  2. Klicken Sie mit der rechten Maustaste auf den Desktop und wählen Sie NVIDIA Systemsteuerung aus.

  3. Wählen Sie in der NVIDIA Systemsteuerung im Hilfemenü die Option Systeminformationen aus. Hier werden die von der VM verwendete GPU und die Treiberversion angezeigt.

GPU-Leistung optimieren

Im Allgemeinen können Sie die Leistung von GPU-Geräten auf Linux-Instanzen mithilfe der folgenden Einstellungen optimieren:

  • Aktivieren Sie den Persistenzmodus. Diese Einstellung gilt für alle GPUs der Instanz.

    $ sudo nvidia-smi -pm 1
    Enabled persistence mode for GPU 00000000:00:04.0.
    Enabled persistence mode for GPU 00000000:00:05.0.
    All done.
    

  • Deaktivieren Sie bei Instanzen mit NVIDIA® Tesla® K80-GPUs die Autoboost-Funktion:

    $ sudo nvidia-smi --auto-boost-default=DISABLED
    All done.
    

Hostwartungen

Für GPU-Instanzen ist keine Live-Migration möglich. GPU-Instanzen müssen zur Hostwartung beendet werden, können jedoch automatisch neu gestartet werden. Diese Wartungen werden normalerweise einmal pro Woche durchgeführt, können bei Bedarf aber auch häufiger auftreten.

Sie können Wartungsereignisse mit den folgenden Prozessen verarbeiten:

  • Vermeiden Sie diese Unterbrechungen, indem Sie Ihre Instanzen regelmäßig zu Zeitpunkten neu starten, die für Ihre Anwendungen günstig sind.
  • Ermitteln Sie, wann Hostwartungen für Ihre Instanz geplant sind, und bereiten Sie Ihre Arbeitslast auf den Übergang beim Neustart des Systems vor.

Um vorab eine Warnung über Hostwartungen zu erhalten, überwachen Sie den Metadatenwert /computeMetadata/v1/instance/maintenance-event. Wenn die Anfrage an den Metadatenserver NONE ergibt, dann ist eine Beendigung der Instanz nicht geplant. Führen Sie in der Instanz zum Beispiel den folgenden Befehl aus:

$ curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"

NONE

Wenn der Metadatenserver einen Zeitstempel zurückgibt, dann zeigt Ihnen dieser Zeitstempel, wann die Beendigung Ihrer Instanz erzwungen wird. Compute Engine gibt GPU-Instanzen eine einstündige Vorankündigung, während normale Instanzen nur eine Vorankündigung von 60 Sekunden erhalten. Konfigurieren Sie Ihre Anwendung für die Umstellung durch das Wartungsereignis. Beispielsweise können Sie eine der folgenden Methoden verwenden:

  • Konfigurieren Sie Ihre Anwendung so, dass die laufende Arbeitslast vorübergehend in einen Google Cloud Storage-Bucket verschoben wird. Rufen Sie diese Daten ab, nachdem die Instanz neu gestartet wurde.

  • Schreiben Sie Daten in einen sekundären nichtflüchtigen Speicher. Nachdem die Instanz automatisch neu gestartet wurde, kann der nichtflüchtige Speicher wieder angehängt werden und Ihre Anwendung setzt die Arbeit fort.

Sie können auch ohne Abfrage eine Benachrichtigung über Änderungen an diesem Metadatenwert erhalten. Beispiele dafür, wie Sie eine erweiterte Benachrichtigung über Hostwartungen ohne Abfrage erhalten können, finden Sie in Live-Migrationshinweise abrufen.

Weitere Informationen

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

Feedback geben zu...

Compute Engine-Dokumentation