GPU-Leistung optimieren

Mit den folgenden Optionen können Sie die Leistung von GPUs auf VM-Instanzen verbessern:

AutoBoost-Funktion deaktivieren

Wenn Sie die Autoboost-Funktion mit NVIDIA® Tesla® K80-GPUs verwenden, passt das System automatisch die Taktgeschwindigkeit an, um die optimale Geschwindigkeit für eine bestimmte Anwendung zu finden. Wenn Sie jedoch die Taktgeschwindigkeiten ständig anpassen, kann dies die Leistung Ihrer GPUs beeinträchtigen. Weitere Informationen zur Autoboost-Funktion finden Sie unter Mit GPU-Boost und K80-Autoboost die Leistung steigern.

Wir empfehlen Ihnen die Aktivierung der Autoboost-Funktion, wenn Sie NVIDIA® Tesla® K80-GPUs in Compute Engine ausführen.

Zum Deaktivieren der Autoboost-Funktion für Instanzen mit angehängten NVIDIA® Tesla® K80-GPUs führen Sie den folgenden Befehl aus:

    sudo nvidia-smi --auto-boost-default=DISABLED
    

Die Ausgabe könnte etwa so aussehen:

    All done.
    

GPU-Taktgeschwindigkeit auf maximale Geschwindigkeit einstellen

Um die GPU-Taktgeschwindigkeit für Instanzen mit angehängten NVIDIA® Tesla® K80-GPUs auf die maximale Geschwindigkeit einzustellen, führen Sie den folgenden Befehl aus:

    sudo nvidia-smi --applications-clocks=2505,875
    

Netzwerkbandbreiten von bis zu 100 Gbit/s verwenden

beta feature

VM-Instanzen erstellen, die höhere Bandbreiten verwenden

Sie können höhere Netzwerkbandbreiten verwenden, um die Leistung verteilter Arbeitslasten auf VM-Instanzen zu verbessern, die auf Compute Engine ausgeführt werden und NVIDIA® Tesla® T4- oder V100-GPUs verwenden.

Weitere Informationen zu den Netzwerkbandbreiten, die für Ihre GPU-Instanzen unterstützt werden, finden Sie unter Netzwerkbandbreiten und GPUs.

So erstellen Sie eine VM-Instanz mit angeschlossenen GPUs und einer Netzwerkbandbreite von bis zu 100 Gbit/s:

  1. Prüfen Sie die Mindestkonfiguration von CPU, GPU und Speicher, um die maximale Bandbreite verfügbar zu machen.
  2. Erstellen Sie Ihre VM-Instanz mit angeschlossenen T4- oder V100-GPUs. Weitere Informationen finden Sie unter GPUs hinzufügen oder entfernen.

    Für das Image, mit dem Sie die VM-Instanz erstellen, muss die virtuelle Netzwerkschnittstelle von Compute Engine (gVNIC) installiert sein. Weitere Informationen zum Erstellen von VM-Instanzen, die die virtuelle Netzwerkschnittstelle von Compute Engine unterstützen, finden Sie unter VM-Instanzen erstellen, die die virtuelle Netzwerkschnittstelle von Compute Engine verwenden.

    Alternativ können Sie das tf-latest-gpu-gvnic-Image aus dem Google Deep Learning VM-Imagekatalog verwenden, auf dem der GPU-Treiber, die ML-Software und der Compute Engine-Netzwerktreiber bereits vorinstalliert sind.

    Wenn Sie beispielsweise eine VM-Instanz namens test-instance mit einer maximalen Bandbreite von 100 Gbit/s, acht V100-GPUs und dem Deep Learning VM-Image erstellen möchten, führen Sie den folgenden Befehl aus:

        gcloud compute instances create test-instance \
           --custom-cpu 96 \
           --custom-memory 624 \
           --image-project=deeplearning-platform-release \
           --image-family=tf-latest-gpu-gvnic \
           --accelerator type=nvidia-tesla-v100,count=8 \
           --maintenance-policy TERMINATE \
           --metadata="install-nvidia-driver=True"  \
           --boot-disk-size 200GB \
           --zone=us-central1-f
        
  3. Nach dem Erstellen der VM-Instanz können Sie die Netzwerkbandbreite überprüfen.

Netzwerkbandbreite prüfen

Wenn Sie mit GPUs mit hoher Bandbreite arbeiten, können Sie ein Netzwerktraffic-Tool wie iperf2 verwenden, um die Netzwerkbandbreite zu messen.

Zur Prüfung von Bandbreitengeschwindigkeiten benötigen Sie mindestens zwei VM-Instanzen mit angeschlossenen GPUs, die die Bandbreitengeschwindigkeit unterstützen, die Sie testen.

Führen Sie die folgenden Schritte aus, um die Netzwerkbandbreite zu ermitteln:

  1. Führen Sie auf einer VM-Instanz den folgenden Befehl aus:

    iperf -s
  2. Führen Sie auf einer anderen VM-Instanz den folgenden Befehl aus. Ersetzen Sie server_dns_or_internal_ip durch die DNS- oder interne IP-Adresse für Ihre VM-Instanz.

    iperf -c server_dns_or_internal_ip -P 16 -t 30

Wenn Sie die maximal verfügbare Bandbreite von 100 Gbit/s verwenden, beachten Sie folgende Hinweise:

  • Aufgrund von Header-Overheads für Protokolle wie Ethernet, IP und TCP auf dem Virtualisierungsstapel erreicht der Durchsatz, gemessen mit netperf, eine Leistung von etwa 90 Gbit/s.

    TCP kann die Netzwerkgeschwindigkeit von 100 Gbit / s erreichen. Andere Protokolle wie UDP sind derzeit langsamer.

  • Aufgrund von Faktoren wie Protokoll-Overhead und Netzwerküberlastung kann die End-to-End-Leistung von Datenstreams etwas unter 100 Gbit/s liegen.

  • Sie müssen mehrere TCP-Streams verwenden, um die maximale Bandbreite zwischen VM-Instanzen zu erreichen. Google empfiehlt 4–16 Streams. Bei 16 Abläufen wird der Durchsatz häufig maximiert. Je nach Anwendung und Software-Stack müssen Sie möglicherweise die Einstellungen oder den Code anpassen, um mehrere Streams einzurichten.

  • Die Netzwerkbandbreite von 100 Gbit / s kann nur unidirektional erreicht werden. Die Summe von TX + RX wird etwa 100 Gbit/s betragen.

Weitere Informationen